Java异常的总结

1.异常概述

运行时异常就是需要出错后回来修改代码,而编译时异常是不一定会发生异常,需要用try catch处理或 throws+try catch处理,而运行时异常用 throws+try catch处理或try catch处理异议不大,因为运行时异常最终还是要回来修改代码的,而编译时异常是不需要回去修改代码的

2.try catch

在catch 用e.printStackTrace()可以直接输入异常原因就和不加try catch在控制台报的异常原因一样,区别是程序可以继续向下运行 不用Sys输出 这个方法就会自动输出

3,Throwable 是所有错误类型的超类

printStackTrace 输出的信息最全,所以一般都使用这个

3.编译时异常和执行时异常

编译时异常,就是说有可能会发生异常有可能不发生异常,必须显示处理,所以加了try catch,如果s和Simple的模式匹配就不异常,不匹配就会异常

3.throws

throws实际上并没有对异常进行处理,只是把异常抛出来,程序还会停在异常处,不往下运行,如果想要往下运行还得加try catch

throws应用是因为有些异常在方法内处理不了所以用throws抛出,然后谁调用该有异常的方法时在处理

4.自定义异常

这个带参构造方法的message 会往父类传 赋值给detaimessage 这个是在这个方法的源码中可以看到

而detailmessage可以通过getMessage获得或者printStackTrace里的输出里含的有detailmessage 就是具体异常原因

自己定义的异常类可以继承Exception(编译时异常) RuntimeException(运行时异常),就可以使自己定义的异常类型分别为(编译时异常) RunException(运行时异常)

5.实例

异常类:继承自Exception所以是编译型异常

这个throw 不加s 在方法体内抛出异常对象,因为这个抛出的异常对象是编译型异常所以需要在chekScore外面加throws 如果自己定义的异常类是RuntimeException类型则外面的方法加不加throws都一样

上面这个在自己定义的异常类中没有给出具体的异常原因,所以要用带参的构造方法