小编Chi*_*aka的帖子

Java Spring-boot 微服务异常处理

Java 异常处理细分为错误、已检查异常和未检查异常。这个问题是关于例外的。

正常的 Java 异常处理是为已检查的异常扩展 Exception 类,并通过考虑异常层次结构来根据需要处理这些异常。

例如:

public class ExceptionA extends Exception {}

public class RunClass {

    public static void main() {
        try {
            RunClass runClass = new RunClass();
            runClass.doSomething();
        } catch(ExceptionA eA) {
            // Do ExceptionA related resolutions.
        } catch(Exception e) {
            // Do Exception related resolutions.
        }
    }

    public doSomething() throws ExceptionA {
        throw new ExceptionA();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我看到了主要的 Spring 书籍,甚至在 Internet 教程中提到了 Spring-boot,并且在微服务的上下文中,即使使用 @ControllerAdvice 也总是从 RuntimeException 类扩展。

这明显违反了 Java 异常处理基础。但是仍然有一个说法是,它被扩展为 RuntimeException 因为这个异常是由@ExceptionHandler 方法处理的,并且它是在运行时生成和处理的。

尽管如此,由于 RuntimeException 的这个扩展使得编译时异常处理跟踪不可见,并且很难追溯异常是如何抛出的。由于这些原因,我仍然相信,遵循基本的Java已检查和未检查异常处理概念仍然使用@ExceptionHandler方法。 …

java spring-mvc netflix spring-boot microservices

3
推荐指数
1
解决办法
5285
查看次数

标签 统计

java ×1

microservices ×1

netflix ×1

spring-boot ×1

spring-mvc ×1