Java中的异常处理机制
示例
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s="hello";
int i=Integer.parseInt(s);
}
}
运行异常结果
在上述代码中Integer.parseInt表示把字符串类型转化成整数类型,同时Integer是Int的封装类;程序会报错,因为计算机没有办法把hello转化成整数,这时就可以采用以下方式来解决这个问题
public class test {
/**
* try块中表示可能会出错的内容
* catch块中是出错后执行的部分呢
* */
public static void main(String[] args) {
// TODO Auto-generated method stub
String s="100";
try {
int i=Integer.parseInt(s);
/**
*程序不会出错时是不会执行到 catch块中的
* */
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
在catch块中还可以进行这样的处理:system.out.println(e.getMessage)-->打印出错误语句信息;;e.printstackTrace()-->打印的是堆栈信息;;以上示例中的事件也可以处理也可以不处理
必须处理的错误
public static void main(String[] args){
Class.forName("java.test");
}
抛出的错误为:Unhandle exception type ClassNotfoundException-->类没有找到的异常错误,这个错误系统要求必须处理,处理方式同上进行try{}catch{}来处理
异常处理机制:程序运行时出现的,导致程序无法正常运行的错误称为异常
- Error:一般JVM运行的错误,不用处理,也没有办法处理
- Exception分为RuntimeException与非RuntimeException,运行异常可以选择处理或者不处理;非运行异常可以不用管太多
异常类型总结
RuntimeException:
-
- NullFointerExcption-->空指针异常
- IndexOutOfBoundException-->数组下标越界异常
- NumberFormatException-->数据格式异常
- ClassCastException-->类型转换异常
- IllegalArgumentException-->非法参数异常
- ArithmeticException-->算数异常
非RuntimeException:
-
- ClassNotFoundException-->类加载异常