按《Thinking in Java》书中介绍 每个类都有一个Class对象,Class.forName()取得Class的对象
的引用,如果Class.forName()找不到指定要加载的类时,它会抛出ClassNotFoundException 。
可下面的代码(SweetShop.java)让我困惑: class Candy {
static {
System.out.println("Loading Canding");
}
}
class Gum{
static {
System.out.println("Loading Gum");
}
}
public class SweetShop {
public static void main(String[] args){
Class.forName("Candy");
}
}
“ 在使用命令javac SweetShop.java 时却出现
未报告的异常 java.lang.ClassNotFoundException;必须对其进行捕
捉或声明以便抛出 Class.forName("Candy"); ”“Candy”类是存在的,可以找到的,为什么还会有“ClassNotFoundException”异常呢 ?
请高手指点,谢谢……
的引用,如果Class.forName()找不到指定要加载的类时,它会抛出ClassNotFoundException 。
可下面的代码(SweetShop.java)让我困惑: class Candy {
static {
System.out.println("Loading Canding");
}
}
class Gum{
static {
System.out.println("Loading Gum");
}
}
public class SweetShop {
public static void main(String[] args){
Class.forName("Candy");
}
}
“ 在使用命令javac SweetShop.java 时却出现
未报告的异常 java.lang.ClassNotFoundException;必须对其进行捕
捉或声明以便抛出 Class.forName("Candy"); ”“Candy”类是存在的,可以找到的,为什么还会有“ClassNotFoundException”异常呢 ?
请高手指点,谢谢……
楼主截止到2008-06-18 00:07:26的汇总数据:
发帖数:2
结贴数:0
结贴率: 0.00%
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
所以这跟有没有Candy这个类没有关系另外还要注意2楼说的
请看jdk文档, Class.forName(String className)会抛三个异常,
LinkageError - 如果链接失败
ExceptionInInitializerError - 如果此方法所激发的初始化失败
ClassNotFoundException - 如果找不到该类另外请注意className - 所需类的全名。如果你不进行处理(try/c)那么你在main方法中调用的时候继续抛出,当然这种做法不是很好,最好还是捕捉一下异常
import java.util.*;
class Candy {
static {
System.out.println("Loading Canding");
}
}
class Gum{
static {
System.out.println("Loading Gum");
}
}public class SweetShop {
public static void main(String[] args){
new Candy();
System.out.println("After creating Candy ");
try{
Class.forName("Gum");
}catch(ClassNotFoundException e){
System.out.println("Couldn't find Gum");
}
}
}用JDK在命令行中运行是结果为:
Loading Canding
After creating Candy
Loading Gum而在eclipse 下运行的结果为 :
Loading Canding
After creating Candy
Couldn't find Gum结果为什么会一样 ???? 五楼能不能说说jdk文档中Class.forName(String className)
在哪里或把具体该方法具体说明贴一下 ? 我找不到………………
非常感谢各位高手, 我在JDK 文档中找到说明了 ,
3Q……