c语言调用J***A方法异常,c语言调用j***a方法异常怎么办

dfnjsfkhak 38 0

大家好,今天小编关注到一个比较意思的话题,就是关于c语言调用java方法异常问题,于是小编就整理了1个相关介绍c语言调用Java方法异常的解答,让我们一起看看吧。

  1. 在JAVA中捕获异常后throw自定义异常是不优雅的吗?

JAVA中捕获异常后throw自定义异常是不优雅的吗?

throws语句

如果一个方法可以引发异常,而它本身并不对该异常进行处理,那么该方法必须将异常抛给调用者可以使程序能够继续执行下去,这时候就要用到throws语句。在方法体中可以是引发异常列表中的任何一种异常及其子类型的异常。throws用来声明一个方法可能会抛出所有的异常,它跟在方法名称的后面。如果有多个异常,则使用逗号将其分开。

c语言调用JAVA方法异常,c语言调用java方法异常怎么办-第1张图片-芜湖力博教育咨询公司
图片来源网络,侵删)

throw语句

throw语句通常用在方法体中,并且抛出一个异常对象。程序在执行到throw语句时立即停止,它后面的语句都不执行。

你换个角度考虑,如果把A异常包装成B异常确实是不规范的做法,应该禁止使用,那么我们的代码会变成什么样?

c语言调用JAVA方法异常,c语言调用java方法异常怎么办-第2张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

比如系统底层,不管是查询数据库,还是调用某个REST服务,本质都是访问网络,那么访问网络必然抛出IOException、SocketTimeoutException等异常,但因为不能对这些异常再次包装,所以要么catch住,打印一下日志,然后返回一个false代表本次操作失败,要么就是把这些底层异常层层往上抛,然后在最前端的Controller/Action/Servlet里处理,或者Controller/Action/Servlet也不处理,继续抛、抛给框架或者容器,那么这样是不是就规范了呢?是不是就优雅了呢

不能这么说吧,JDK自带的异常毕竟不能完全描述“代码运行过程中的所抛出的所有问题”,比如:参数为空,参数不正确,数据无法查找,调用第三方程序异常……的情况,所以自定义异常在所难免,我们将异常一般在表现层需要做“合适的处理,防止异常抛出到页面上”,如果全用JDK的异常,那么我们就如何区分?不可能所有的错误,我们都返回的是“系统繁忙,请稍后重试!”,所以不认为throw自定义异常就不优雅了,如果感觉不优雅我们可以***用切面上处理异常,核心代码中没有异常信息,这就优雅了!!!

不一定。在 J***a 中,捕获异常后抛出自定义异常是一种常见的做法,这可以使代码更清晰,易于理解和维护

c语言调用JAVA方法异常,c语言调用java方法异常怎么办-第3张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

在捕获异常时,如果只是简单地将异常重新抛出,则不会有什么实际的好处。但是,如果你在捕获异常后抛出自定义异常,可以使代码更清晰,易于理解和维护。因为自定义异常可以给异常赋予更多的上下文信息,方便代码的更好理解。

因此,在 J***a 中,捕获异常后抛出自定义异常不一定是不优雅的。这取决于你如何实现它以及它在代码中的作用。如果它有助于使代码更清晰,易于理解和维护,那么它是优雅的。

No,实际上,在很多框架中都***用了这种方式

1.ReThrow

自定义异常,用来更好地进行异常隔离,标识异常的类型,ID,自定义消息等,用于LOG等

2.对第三方库的异常进行包装,抽象化,保持与你的框架异常定义一致性,便于你框架对不同异常的处理

3.restful Api,统一异常管理

到此,以上就是小编对于c语言调用J***A方法异常的问题就介绍到这了,希望介绍关于c语言调用J***A方法异常的1点解答对大家有用

标签: 异常 定义 方法