A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ithemazl 中级黑马   /  2015-9-19 10:09  /  492 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

先说说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{}捕捉并处理异常

2 个回复

倒序浏览
关键区别是:一个放在代码段里,一个放在方法名后
回复 使用道具 举报
谢谢,你是哪一期的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马