Java异常为什么要这样设计,还专门有老师特殊讲课了,还不会,感觉这个异常章节就不应该讲。学了不用,还学它干什么,浪费时间。 其实让程序更牛逼健壮一点,处理好异常问题,就可以达到效果。 编写程序的开发过程中可能有很多出错的情况,出错的原因可能是多方面的,有的是不可控的内部原因,比如内存不够了、磁盘满了,有的是不可控的外部原因,比如网络连接有问题,更多的可能是程序的编写错误,比如引用变量未初始化就直接调用实例方法。 这些非正常情况在导致Java程序报错无法正常预期往下运行,我们这种错误统一认为是异常,Java使用异常机制来统一处理。 有经验的程序员经常提前预知了异常问题发生,他们会把程序可能发生的问题设计好,规划好,让它发生,让它时执行自己的预案,其实就是通过异常的机制处理程序就行,这样你的程序就不会报错了,容错率就很高,这就是程序 Java异常是在Java程序运行时发生的一种特殊情况,它会中断程序的正常执行,并向调用者抛出一个异常对象,以提示出现了特殊情况。 Java异常可以分为两大类: 编译时异常(CheckedException):编译时异常也叫受检异常,是指在编译Java程序时就能够发现的异常。例如:IOException、SQLException等; 运行时异常(UncheckedException):运行时异常也叫未检查异常,是指在编译Java程序时无法发现的异常,只有在运行时才能够发现的异常。例如:NullPointerException、ArrayIndexOutOfBoundsException等。 publicstaticvoidmain(String〔〕args){ Stringsnull; s。indexOf(a); System。out。println(end); } 当执行s。indexOf(a)的时候,Java虚拟机发现s的值为null,没有办法继续执行了,这时就启用异常处理机制,首先创建一个异常对象,这里是类NullPointerException的对象,然后查找看谁能处理这个异常。 publicstaticvoidmain(String〔〕args){ if(args。length1){ System。out。println(请输入数字); return; } try{ intnumInteger。parseInt(args〔0〕); System。out。println(num); }catch(NumberFormatExceptione){ System。err。println(参数args〔0〕不是有效的数字,请输入数字); } } 使用trycatch捕获并处理了异常。对于一个初学者经常遇上程序报错,可能就不知道为什么,实际理解每个异常的意思,就不害怕了,同时了解了背后的含义及用法。 Java常见异常如下: 1)NullPointerException:空指针异常,当试图在需要对象的地方使用null时,抛出该异常。 2)ClassNotFoundException:找不到类异常,当Java程序试图加载一个不存在的类时,抛出该异常。 3)ArithmeticException:算术异常,当程序运行时发生算术错误,比如除数为0时,抛出该异常。 4)ArrayIndexOutOfBoundsException:数组越界异常,当尝试访问数组中不存在的索引时,抛出该异常。 5)NumberFormatException:数字格式异常,当尝试将字符串转换为数字类型时,如果字符串不能转换,抛出该异常。 6)IllegalArgumentException:非法参数异常,当向方法传递不正确的参数时,抛出该异常。 7)IOException:输入输出异常,当处理输入输出时发生错误时,抛出该异常。