为什么需要异常处理
* 当Java程序中出现一些无法掌控的问题,但是又需要该程序
* 希望该程序不停止运行,我们希望捕捉改程序的异常,进行分析处理
*
* 异常的分类
* Throwable为异常类的顶层类
* 下一级子类为error和Exception
* error指的是JVM本身的错误,错误不能被代码进行处理,一般这种错误少见
* RuntimeException一般都是程序逻辑问题才报的错误
*
* 三种抛出异常的方式
* try--catch throws throw
* throw语句抛出异常 throws方法抛出异常
* throw不可单独使用 需要和throws或者try-catch配套使用
*
* try-catch语句的执行顺序
* 当try块成功,也就是说方法不会抛出异常,将跳过catch方法
* 直接调用后面的部分,如果有finally语句,这是不管怎么样,都会执行的语句
* 当try块失败,也就是说被调用的方法抛出异常,则接下来将会进入catch块中
* catch块中用来处理异常,不是程序的逻辑异常
* 如果使用try-catch来进行捕捉异常
* catch的顺序有关系
* 如果捕捉的异常之间没有子类父类的关系,则顺序没有关系
* 否则,异常的大小应该是从小到大进行
*/
* 当Java程序中出现一些无法掌控的问题,但是又需要该程序
* 希望该程序不停止运行,我们希望捕捉改程序的异常,进行分析处理
*
* 异常的分类
* Throwable为异常类的顶层类
* 下一级子类为error和Exception
* error指的是JVM本身的错误,错误不能被代码进行处理,一般这种错误少见
* RuntimeException一般都是程序逻辑问题才报的错误
*
* 三种抛出异常的方式
* try--catch throws throw
* throw语句抛出异常 throws方法抛出异常
* throw不可单独使用 需要和throws或者try-catch配套使用
*
* try-catch语句的执行顺序
* 当try块成功,也就是说方法不会抛出异常,将跳过catch方法
* 直接调用后面的部分,如果有finally语句,这是不管怎么样,都会执行的语句
* 当try块失败,也就是说被调用的方法抛出异常,则接下来将会进入catch块中
* catch块中用来处理异常,不是程序的逻辑异常
* 该块做的是程序恢复的尝试,或者至少列出错误信息
* 后话
异常也是对象,所以异常也有多态
* 异常也能抛出一个以上的异常* 如果使用try-catch来进行捕捉异常
* catch的顺序有关系
* 如果捕捉的异常之间没有子类父类的关系,则顺序没有关系
* 否则,异常的大小应该是从小到大进行
*/