栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

是否每个异常都有必需的try-catch?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

是否每个异常都有必需的try-catch?

并不是绝对需要

try/catch
为您的例外设置一个阻止。相反,您可以将
throw
它们交给能够正确处理异常的人。

有两种例外:已检查和未检查。检查异常 可以考虑
一个由编译器发现,编译器知道它有发生的机会,所以你需要

catch
或者
throw
它。例如,打开一个文件。它有机会失败,并且编译器知道这一点,因此您不得不这样做
catch
throw
可能这样做
IOException

未检查的异常 可以被认为 是有可能发生的异常,但是根据您的代码,编译器并不知道。换句话说,这是 编程错误
。例如,如果您接受用户输入并期望输入数字,而用户输入了您未期望的内容(例如字符串),则程序将抛出

NumberFormatException
。您可以预测这些情况,并
try/catch
尽力避免它们发生。很少有人看到有人添加
throwsNullPointerException
throwsNumberFormatException
(或抛出任何其他未经检查的异常)。允许,但是显式创建该异常很奇怪,大多数人会说这是不好的编码风格。

请注意,所有“已检查”建议都 必须 被捕获或扔给可以处理的建议;如果不这样做,程序将无法编译。如果将其扔到无法处理的地方,那么程序可能会崩溃。

还要注意,未经检查的异常(例如,在运行时发生的异常,通常是由于用户输入错误或诸如此类的错误)通常也会使程序崩溃。因此,通常在有可能发生问题的情况下使用它是一个好主意

try/catch
,但是
您不必这样做

还值得注意的是,虽然Checked异常是Exception的子类,Unchecked异常是RuntimeException的子类,但RuntimeException本身是Exception的子类。这意味着,如果您确实愿意,那么一个函数

try{} catch (Exception e){}
将捕获程序可能抛出的每个异常。当然,这被认为是处理异常的一种可怕方法,您应该分别捕获每个异常,以便可以分别处理它们。请尽量不要使用它。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/453535.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号