返回顶部
首页 > 资讯 > 精选 >dubbo将异常转换成RuntimeException的原因是什么
  • 800
分享到

dubbo将异常转换成RuntimeException的原因是什么

2023-07-05 14:07:48 800人浏览 薄情痞子
摘要

本篇内容主要讲解“dubbo将异常转换成RuntimeException的原因是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“dubbo将异常转换成RuntimeException的原因是什

本篇内容主要讲解“dubbo将异常转换成RuntimeException的原因是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“dubbo将异常转换成RuntimeException的原因是什么”吧!

问题

开发过程中,发现服务提供者抛出了自定义的BusinessException,到了消费者这边,却变成了RuntimeException。

客户端这边有BusinessException这个类,提供者抛出的也是这个类的异常,为什么会被转成rpcException呢?

代码分析

看ExceptionFilter的代码:

dubbo将异常转换成RuntimeException的原因是什么

重点就在圈起来的3个地方:

有异常,而且接口不能是GenericService才需要判断是否需要转换成RuntimeException,不然直接返回result。

如果是受检异常,则不转换,直接返回。

如果不是受检异常,则需要判断该异常是否在方法上声明抛出,如果有声明就不转换,直接返回。

如果不是上面的这三种情况,就会去到兜底逻辑:

dubbo将异常转换成RuntimeException的原因是什么

兜底判断也是有三点:

判断接口和异常是否在一个jar包中,如果是在一个jar包,不需要转换成RuntimeException。

如果异常是java异常,不需要处理。

异常类型是RpcException,不需要处理。

如果这三者都不满足,就会到达代码:

return new RpcResult(new RuntimeException(StringUtils.toString(exception)));

异常会被转成字符串,作为RuntimeException的构造函数入参。

结论

由于BusinessException是在一个通用工具包中,和接口不在一个jar包中,BusinessException也不是受检异常,所以不满足不转换的条件。

要让提供者抛出的异常不被转成RuntimeException,可以在定义方法的时候,声明 throws BusinessException。

思考

为什么dubbo要这样判断是否需要转成RuntimeException呢?

个人觉得,依据是消费者能否反序列化成对应的异常类,消费端有抛出的这个异常类,就能成功反序列化。

能抛出受检异常,那么在方法上必然声明了抛出该异常,客户端包里会有该异常类

同理,如果不是受检异常,但是在方法上声明了,客户端也会有

如果接口和异常类是在同一个jar吧,说明客户端包里有异常类

jdk自己的异常类,自然是存在的

RpcException是dubbo自己的异常类,消费者必然也有

到此,相信大家对“dubbo将异常转换成RuntimeException的原因是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: dubbo将异常转换成RuntimeException的原因是什么

本文链接: https://lsjlt.com/news/352358.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • dubbo将异常转换成RuntimeException的原因是什么
    本篇内容主要讲解“dubbo将异常转换成RuntimeException的原因是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“dubbo将异常转换成RuntimeException的原因是什...
    99+
    2023-07-05
  • dubbo将异常转换成RuntimeException的原因分析 ExceptionFilter
    目录问题代码分析结论思考最后问题 开发过程中,发现服务提供者抛出了自定义的BusinessException,到了消费者这边,却变成了RuntimeException。 客户端这边有...
    99+
    2023-03-21
    dubbo异常转换RuntimeException dubbo ExceptionFilter dubbo异常
  • java类型转换异常的原因及解决方法是什么
    Java类型转换异常的原因是由于在进行类型转换时,源类型与目标类型之间存在不兼容的关系。这包括以下几种情况: 源类型与目标类型之间...
    99+
    2024-02-29
    java
  • 空指针异常的原因是什么
    空指针异常的原因有:1、未初始化引用,在使用该引用前没有对其进行初始化操作,就会抛出空指针异常;2、对象未被正确实例化,如果对象没有被正确实例化,尝试访问其成员也会导致空指针异常;3、引用被显示赋值为null,在这种情况下试图访问该引用的成...
    99+
    2023-12-14
    空指针异常
  • dubbo异步调用的原理是什么
    Dubbo异步调用的原理是通过使用线程池来实现异步调用。首先,服务消费者发送请求给服务提供者,然后服务提供者将请求放入线程池中进行处...
    99+
    2023-10-23
    dubbo
  • Spring Boot集成Druid出现异常报错的原因是什么
    这篇文章主要介绍Spring Boot集成Druid出现异常报错的原因是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Spring Boot集成Druid异常在Spring Boot集成Druid项目中,发现错误...
    99+
    2023-06-15
  • 网络连接异常是什么原因
    网络连接异常的原因:1、设备未连接网络;2、路由器设置有问题;3、路由器故障;4、网线线路;5、服务器中断;6、设备系统问题;7、设备硬件故障;8、网络信号不好;9、手机系统网络设置混乱;10、手机运行程序过多;11、手机软件有问题。本教程...
    99+
    2023-07-10
  • 301跳转不成功的原因是什么
    301跳转不成功的原因有:跳转地址没有填写正确。301跳转代码脚本放的位置不正确。跳转的URL已失效过期。...
    99+
    2024-04-02
  • Oracle中JOB异常中断的原因是什么
    今天就跟大家聊聊有关Oracle中JOB异常中断的原因是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。JOB 信息:参数:BROKEN &nbs...
    99+
    2024-04-02
  • parseInt()函数异常行为是什么原因
    今天小编给大家分享的是parseInt()函数异常行为是什么原因,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。正文parseInt()是内置的 JS 函数,用于解析数字字符串中的整数...
    99+
    2023-07-06
  • 小程序要将es6转es5的原因是什么
    这篇文章主要讲解了“小程序要将es6转es5的原因是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“小程序要将es6转es5的原因是什么”吧!为了浏览器兼容。ES6作为JS的新规范,加入了...
    99+
    2023-07-04
  • C#访问null字段会抛异常的原因是什么
    这篇文章主要介绍“C#访问null字段会抛异常的原因是什么”,在日常操作中,相信很多人在C#访问null字段会抛异常的原因是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#访问null字段会抛异常的原因...
    99+
    2023-07-02
  • 香港阿里云服务器异常原因是什么
    阿里云是一家知名的云计算服务提供商,为企业和个人提供云计算基础设施和应用程序服务。其主要服务包括计算、存储、网络、安全等方面的解决方案,可以帮助用户构建和管理高效、稳定的云计算平台。 然而,阿里云服务器的故障和问题并不是个例,这通常是由于...
    99+
    2023-10-28
    阿里 香港 异常
  • php_eol没有换行的原因是什么
    小编给大家分享一下php_eol没有换行的原因是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php_eol是文本换行,只对文本文件有效,在浏览器并不能如常显...
    99+
    2023-06-15
  • hal.dll丢失是什么原因造成的
    这篇文章主要介绍了hal.dll丢失是什么原因造成的,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来看看吧。一客户机器远程不上 接显示器一看 提示 hal.dll丢失 上网一查 hal.dll是Windows硬件提取层模块,开机后...
    99+
    2023-06-14
  • Go语言不提供隐式数字转换的原因是什么
    这篇文章主要介绍“Go语言不提供隐式数字转换的原因是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Go语言不提供隐式数字转换的原因是什么”文章能帮助大家解决问题。什么是隐式转换在 C 语言中,隐...
    99+
    2023-07-05
  • 云服务器显示异常登录失败是什么原因
    云服务器显示异常登录失败的原因:本地安全策略中修改了“拒绝通过远程桌面服务登录”策略导致的。未给用户附加远程登录权限。云服务器到期欠费就会停机启动不了,从而无法登录。云服务器受到攻击出现 CPU 使用率过高或者内存耗尽的情况,也会导致云服务...
    99+
    2024-04-02
  • 香港阿里云服务器异常原因是什么意思
    首先,阿里云服务器在连接到互联网的时候可能会遇到连接超时或者网络中断等问题,这些问题可能导致服务器无法正常连接到互联网。此外,如果服务器在维护期间出现了网络故障,例如网络带宽不足或者网络拥塞等,也可能导致服务器无法正常连接到互联网。 除了...
    99+
    2023-10-28
    阿里 香港 异常
  • 域名转移失败的原因是什么
    本篇内容介绍了“域名转移失败的原因是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 由于国内互联网环境相对复杂,很多站长都开始...
    99+
    2023-06-06
  • ApexSQLLog造成的SQlServer事件原因是什么
    这篇文章主要讲解了“ApexSQLLog造成的SQlServer事件原因是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ApexSQLLog造成的SQl...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作