throw和throws区别:
先说说throws,throws是用来申明异常类型的,如果我在一个方法后面用throws申明了有可能发生的异常类型,那么当谁调用这个方法时要么用try{}catch{}捕捉,要么在那谁后面继续用throws申明抛,如果一直这么用throws抛一直抛到主方法main()后面那么就由虚拟机jvm处理这个异常了如果虚拟机也无法识别这个异常那么整个程序终止,所以一般不建议这么一直抛下去.
throw,这个关键字是主动抛异常,用法是throw new xxx(异常类),一般自己定义的异常类用throw抛,也可以直接抛系统定义好的异常类,抛的时候方法后面要加throws申明抛出的异常类型,然后调用者要么用try{}catch{}捕捉,要么用throws申明继续抛。
throws就是配合throw用的,系统里很多异常例如IOException 等等 都是在文件流类里面使用了throw抛出自己定义的异常类,当你使用文件流时要么就用try{ }catch{}捕捉要么就用throws申明继续往上抛. 没有throw主动抛异常,throws变的毫无意义. 当提示会出现异常信息时不建议用throws直接抛,建议自己用try{}catch{}捕捉并处理异常
|