您的位置:首页 > 编程语言

try代码体抛出的异常,级别要小于等于catch住的异常类型

2017-02-19 17:43 316 查看
如下就不会执行catch语句。
[align=left][/align]

@RequestMapping("/single_importNc"
)
[align=left]      @ResponseBody[/align]
      public
Object importNc(
@RequestParam
String
singleId)
{
[align=left]
[/align]
[align=left]       [/align]
            Map
map
=
new
HashMap();

            
try{
                  
throw
new
RuntimeException("shibai!");
            }
catch(
SQLException
e){
                  
map.put("msg",
e
.getMessage());

[align=left]                  }[/align]
[align=left]
[/align]
[align=left]     return map;[/align]
[align=left]}[/align]
[align=left]           [/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]以下都是在controller层写的:[/align]
[align=left]
[/align]
如下写法会执行catch语句,会把e
.getMessage()得到的String形式的错误信息返回给前台。

[align=left]try{[/align]
                  
throw
new
RuntimeException("shibai!"
);
            }
catch(
Exception
e){
                  
map.put("msg",
e
.getMessage());

[align=left]                  }[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]如果这样写:[/align]

[align=left]try{[/align]
                  
throw
new
Exception("shibai!"
);
            }
catch(
RuntimeException
e){
                  
map.put("msg",
e
.getMessage());

[align=left]                  }[/align]
throw
new
Exception("shibai!"
); 这一行会报错,因为抛出的是Exception,catch住的异常类型是RuntimeException,不对。
[align=left]在方法头加throws Exception,就对了。或者[/align]
[align=left]改成把catch异常类型换成Exception,如下:[/align]
[align=left]
[/align]

[align=left]try{[/align]
                  
throw
new
Exception("shibai!"
);

            }
catchException
e){

                  
map.put("msg",
e
.getMessage());

[align=left]                  }[/align]
[align=left]
[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐