You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

11 lines
1.7 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 个人描述测试
## 测试
[百度](https://www.baidu.com)
## 关于框架异常以及业务异常
由于DTAF/TAF框架都是依赖于第三方的框架在第三方的框架中他们自定义的异常几乎都是继承自RuntimeExceptionJava中的运行时异常是不需要进行主动声明抛出的所以在第三方的框架api中很少有方法会主动的抛出异常而我们的TAF框架考虑到了业务代码通常会抛出业务异常所以定义了TafException而业务代码在很多时候都需要考虑异常情况并通过异常抛出的形式给到前端作为提示信息所以TafException继承自Exception似乎不太合理这个异常必须显示的声明所以我们的代码几乎都有声明异常抛出这一方面带来了注释的维护维护不彻底打包会有大量的警告信息另一方面看起来感觉异常声明太泛滥了。所以我觉得应该将TafException继承自RuntimeException。另一方面我们依赖于第三方框架时在重写方法时我们只能按照别人的方法定义去实现逻辑抛出RuntimeException以上或者以外的异常是不允许的。
另外在client的调用中应该可以尝试通过openFeign接口定义中提供的异常执行方法key例如IPeopleValidityCheckClient#login(String,String)这是不带有异常声明信息的但是可以尝试通过key中的类名以及方法名利用反射机制获取接口的抛出异常那么就能保留异常类型进行抛出到调用端。但是这好像在同时有多个异常的情况下仍旧不完美因为存在多个抛出异常时无法知道响应中的异常信息是哪一种想通过不同的业务异常类型进行业务判断就变得不可行