javaweb 在JAVA中捕获异常后throw自定义异常是不优雅的吗?
在JAVA中捕获异常后throw自定义异常是不优雅的吗?
事实上,这种方法在很多框架中都有使用
1。Rethrow
自定义异常,用于更好地隔离异常,识别异常类型、ID、自定义消息和日志
2。对第三方库的异常进行打包和抽象,以保持与框架异常定义的一致性,方便框架处理不同的异常
3。Restful API,统一异常管理
将可能导致异常的代码放入try块,将处理异常的代码放入catch块。catch语句的顺序很重要。当异常发生时,它向上传递堆栈,每个catch块都有机会处理它。通过将异常类型与catch块中指定的异常名称相匹配,可以确定处理异常的catch块。例如,下面的catch块将捕获简单对象访问协议(soap)异常:
catch(soapexception){控制台写入线(“SOAPExceptionErrorCode:{0}”,
e。子代码.代码.名称)
控制台写入线(“soapexceptionmessages:{0}”,
e.Message)}CatcheAsSoapException控制台写入线(“SOAPExceptionErrorCode:{0}”,例如。子代码.代码.名称)
控制台写入线(“Soapexceptionmessage is:{0}”,e.message)endtry如果没有特定类型的catch块,则可能的常规catch块将捕获异常。例如,您可以通过添加以下代码来捕获常规异常:
catch(exception){控制台写入线(“ExceptionMessage:{0}”,e.Message)}捕获异常控制台写入线(“exceptionmessage:{0}”,e.message)endtry将特定类型异常的catch块放在常规异常之前。
公共语言运行库将捕获catch块未捕获的异常。根据运行时的配置,可以显示调试对话框,或者可以停止程序的执行,并且可以显示包含异常信息的对话框。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。