Java throw与throws关键字解析
异常里的两个老熟人,throw和throws,名字挺像,用法却不太一样。throw是你主动“扔”出异常,throws则是声明“我会扔”,有点像你打游戏时一个是放技能,一个是提示队友要放技能。多刚接触 Java 的小伙伴容易搞混,实战时容易踩坑,尤其在方法签名里忘了加throws
,编译直接给你一巴掌。
日常开发中,throw new Exception()
用得还挺多,是在你想自定义错误信息的时候。比如你写了个用户登录接口,用户名为空就直接throw new IllegalArgumentException("用户名不能为空")
。这样一来,调用的人一看异常就知道哪出问题了,调试效率直接拉满。
另外,throws常见于你写工具类或底层库时,比如你写了个读文件的方法,里面用了FileReader
,那你最好在方法签名加上throws IOException
,不然编译器又得找你麻烦。写的时候别偷懒,声明清楚异常是给别人用代码时多点提示,算是种“开发礼貌”吧。
如果你想了解更丰富的异常姿势,可以看看这些文章,比如Java 集合异常这篇,讲得还蛮清楚的。或者你也可以翻翻这个示例,看完估计你再也分不清 throw 和 throws……是不的了。
提醒一句:throws 只是声明,真正抛还是得靠 throw。如果你现在在写方法接口,嗯,记得加上throws
哦~
1.46KB
文件大小:
评论区