Error异常捕获方法

背景

在调用Class.forName(name)方法后去java类的时候,当该类不存在时,会报出错误,而且没有被捕获到。

1
2
3
4
5
try{
System.out.println(Class.forName("xxx"));
}catch(Exception e) {
System.out.println("error")
}

解决办法

在使用Class.forName()方法时,当类不存在时,会抛出NoClassDefFoundError。这是个错误类,而非异常。所以不会被Exception捕获,可以通过Error捕获。

捕获方法:

1
2
3
4
5
try{
System.out.println(Class.forName("xxx"));
}catch(Error e){
System.out.println("error")
}