异常有两种Error和Exception
我们一般说的异常指Exception,有两种--检查异常和未检查异常
在程序块中如果需要手动抛出一个"检查"异常用throw,throw是一种控制程序流程的特殊方法而已,没有相应的catch的话,可以中止当前的方法继续执行。
throws是检查方法中的可能抛出的"未检查"异常,在写了throws的方法中可以不用去处理异常(RuntimeException可以不写,它代表的是编程错误:
1.无法预料的错误
2.作为程序员,应该在代码中进行检查的错误(比如数组脚标越界),但是在调用方法中,至少有一级是处理这种异常的。
调用一个会throws exception的方法(在方法定义的时候可以用throws实现)时,需要把这个方法放在try里,然后用catch破获这个exception,做相应的处理。
throws声明方法时候,如果不声明throws的话,那么一般的Exception都要在这个方法中终结,也就是说一定要有相应的catch处理,否则编译时会产生错误。如果方法声明了throws的话,可以交给上一级方法去处理,以此类推。但是有些Exception可以不加捕捉,编译也会通过。继承Exception类,可以自己定义Exception,对于特定的状态,用throw抛出,专用的例外。
try、catch用个形象的比喻,如果说throws相当于职业介绍中介的话,那try和catch就是一对倒霉的打工仔。很有意思,throws只是告诉编译器--方法可能产生的异常问题,然后把问题处理抛给try和catch。 他们一个负责发现异常关系,一个负责异常捕获。很辛苦的一对难兄难弟哦
我们一般说的异常指Exception,有两种--检查异常和未检查异常
在程序块中如果需要手动抛出一个"检查"异常用throw,throw是一种控制程序流程的特殊方法而已,没有相应的catch的话,可以中止当前的方法继续执行。
throws是检查方法中的可能抛出的"未检查"异常,在写了throws的方法中可以不用去处理异常(RuntimeException可以不写,它代表的是编程错误:
1.无法预料的错误
2.作为程序员,应该在代码中进行检查的错误(比如数组脚标越界),但是在调用方法中,至少有一级是处理这种异常的。
调用一个会throws exception的方法(在方法定义的时候可以用throws实现)时,需要把这个方法放在try里,然后用catch破获这个exception,做相应的处理。
throws声明方法时候,如果不声明throws的话,那么一般的Exception都要在这个方法中终结,也就是说一定要有相应的catch处理,否则编译时会产生错误。如果方法声明了throws的话,可以交给上一级方法去处理,以此类推。但是有些Exception可以不加捕捉,编译也会通过。继承Exception类,可以自己定义Exception,对于特定的状态,用throw抛出,专用的例外。
try、catch用个形象的比喻,如果说throws相当于职业介绍中介的话,那try和catch就是一对倒霉的打工仔。很有意思,throws只是告诉编译器--方法可能产生的异常问题,然后把问题处理抛给try和catch。 他们一个负责发现异常关系,一个负责异常捕获。很辛苦的一对难兄难弟哦