Java异常为什么要这样设计,还专门有老师特殊讲课了,还不会,感觉这个异常章节就不应该讲。学了不用,还学它干什么,浪费时间。
其实让程序更牛逼健壮一点,处理好异常问题,就可以达到效果。
编写程序的开发过程中可能有很多出错的情况,出错的原因可能是多方面的,有的是不可控的内部原因,比如内存不够了、磁盘满了,有的是不可控的外部原因,比如网络连接有问题,更多的可能是程序的编写错误,比如引用变量未初始化就直接调用实例方法。
这些非正常情况在导致Java程序报错无法正常预期往下运行,我们这种错误统一认为是异常,Java使用异常机制来统一处理。
有经验的程序员经常提前预知了异常问题发生,他们会把程序可能发生的问题设计好,规划好,让它发生,让它时执行自己的预案,其实就是通过异常的机制处理程序就行,这样你的程序就不会报错了,容错率就很高,这就是程序
Java异常是在Java程序运行时发生的一种特殊情况,它会中断程序的正常执行,并向调用者抛出一个异常对象,以提示出现了特殊情况。
Java异常可以分为两大类:
- 编译时异常(Checked Exception):编译时异常也叫受检异常,是指在编译Java程序时就能够发现的异常。例如:IOException、SQLException等;
- 运行时异常(Unchecked Exception):运行时异常也叫未检查异常,是指在编译Java程序时无法发现的异常,只有在运行时才能够发现的异常。例如:NullPointerException、ArrayIndexOutOfBoundsException等。
public static void main(String[] args) {
String s = null;
s.indexOf("a");
System.out.println("end");
}
当执行s.indexOf("a")的时候,Java虚拟机发现s的值为null,没有办法继续执行了,这时就启用异常处理机制,首先创建一个异常对象,这里是类NullPointerException的对象,然后查找看谁能处理这个异常。
public static void main(String[] args) {
if(args.length<1){
System.out.println("请输入数字");
return;
}
try{
int num = Integer.parseInt(args[0]);
System.out.println(num);
}catch(NumberFormatException e){
System.err.println("参数" + args[0] + "不是有效的数字,请输入数字");
}
}
使用try/catch捕获并处理了异常。对于一个初学者经常遇上程序报错,可能就不知道为什么,实际理解每个异常的意思,就不害怕了,同时了解了背后的含义及用法。
Java常见异常如下:
1)NullPointerException:空指针异常,当试图在需要对象的地方使用 null 时,抛出该异常。
2)ClassNotFoundException:找不到类异常,当 Java 程序试图加载一个不存在的类时,抛出该异常。
3) ArithmeticException:算术异常,当程序运行时发生算术错误,比如除数为 0 时,抛出该异常。
4)ArrayIndexOutOfBoundsException:数组越界异常,当尝试访问数组中不存在的索引时,抛出该异常。
5) NumberFormatException:数字格式异常,当尝试将字符串转换为数字类型时,如果字符串不能转换,抛出该异常。
6) IllegalArgumentException:非法参数异常,当向方法传递不正确的参数时,抛出该异常。
7) IOException:输入/输出异常,当处理输入/输出时发生错误时,抛出该异常。
页面更新:2024-05-04
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号