cwe - 396:捕捉通用异常宣言
视图定制的信息:
多个catch块可以丑陋和重复,但“冷凝”catch块通过捕捉等高级类异常可以模糊异常应该得到特殊待遇,或者不应该被此时的程序。抓住本质上过于广泛的异常失败的目的Java的类型的异常,并能成为特别危险如果程序并开始抛出的新类型的异常生长。新的异常类型不会收到任何关注。
![]() ![]()
![]() ![]()
![]() 语言 c++患病率(待定) Java患病率(待定) c#患病率(待定) ![]()
示例1 下面的代码片段以同样方式处理三种类型的异常。
(好的代码)
例如语言:Java
尝试{
doExchange (); }抓住(IOException e) {
记录器。错误(“doExchange失败”,e); }抓住(InvocationTargetException e) { 记录器。错误(“doExchange失败”,e); 抓住(SQLException e) { 记录器。错误(“doExchange失败”,e); 乍一看,似乎比在一个catch块来处理这些异常,如下:
(坏的代码)
尝试{
doExchange (); }捕获(异常e) {
记录器。错误(“doExchange失败”,e); }然而,如果doExchange修改()抛出一个新类型的异常,应该以某种不同的方式处理,宽阔的catch块将防止编译器指出。此外,新catch块现在还将处理异常来源于RuntimeException ClassCastException等NullPointerException,不是程序员的意图。 ![]()
更多的信息是可用的,请选择一个不同的过滤器。
|
使用常见的弱点枚举(CWE)和相关的引用从这个网站的使用条款。CWE赞助的美国国土安全部(DHS)网络和基础设施安全机构(CISA)和管理的国土安全系统工程和发展研究所这是由(HSSEDI)manbetx客户端首页(斜方)。版权©2006 - 2023,斜方公司。manbetx客户端首页CWE、水煤浆、CWRAF, CWE标志是斜方公司的商标。manbetx客户端首页 |