eclipse的环境,写了个关于Class.forName很简单的代码,纠结了很久。下面是代码:
- Java code
package a;import java.lang.*;class b{ static { System.out.println("this is b"); }}public class aa { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Class.forName("b"); //a.b也不行 }}
错误信息:Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Unhandled exception type ClassNotFoundException
------解决方案--------------------------------------------------------
异常未处理,可以在main()后面加上 throws ClassNotFoundException 或用 try catch 处理。
------解决方案--------------------------------------------------------
代码:Class.forName("a.b")会抛出ClassNotFoundException异常,程序要对其进行捕获,或抛给上一级调用者。
- Java code
public static void main(String[] args) { // TODO Auto-generated method stub try { Class.forName("a.b"); //a.b也不行 } catch(ClassNotFoundException e) { e.printStackTrace(); } }
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
会抛出异常的方法调用时必须遵守两个原则:要么在调用此方法的方法中声明会抛出某异常,要么使用try/catch来处理异常。