首页 > 技术文章 > 异常throw和throws

hcjk12580 2019-12-29 17:43 原文

异常处理中throw和throws的区别

1.作用不同:throw用于程序员自行产生并抛出异常;throws用于声明在该方法内可能抛出异常。

2.使用的位置不同:throw位于方法体内部,可以作为单独语句使用;throws必须跟在方法参数列表的后面,不能单独使用。

3.内容不同:throw抛出一个异常对象,而且只能是一个;throws后面跟异常类,而且可以有多个。

try-catch-fially执行过程

try-catch-finally程序块的执行流程以及执行结果比较复杂。基本执行过程如下:

程序首先执行可能发生异常的try语句块。如果try语句没有出现异常则执行完后跳至finally语句块执行;如果try语句出现异常,则中断执行并根据发生的异常类型跳至相对应的catch语句块执行处理。catch语句块可以多个,分别捕获不同类型的异常。catch语句块执行完后程序会继续执行finally语句块。finally语句是可选的,如果有的话,则不管是否发生异常,finally语句块都会被执行。

需要注意的是即使try和catch块中存在return语句,finally语句也会执行。是在执行完finally语句后通过return退出。

常见的exception

NullPionterException

ArrayIndexOutOfBoundsException

StringIndexOutOfBoundsException

ClassCastException

NumberFormarException

ArithmeticException

ClassNotFoundException 受检异常

推荐阅读