이해하기 쉽습니다. 간단히 비유하자면, 用户不存在/密码错误... 这些错误类型, 如果你直接使用RuntimeException코드는 이렇게 작성해야 합니다.
으아악
예외 잡기
으아악
반대로 사용자 정의 예외는 다음과 같이 구현됩니다.
으아악
예외 잡기
으아악
메시지를 통해 예외 처리 논리를 판단하는 데에는 많은 단점이 있습니다. 예를 들어 메시지가 동적이면 정확하게 처리되지 않습니다.
물론 그럴 수도 있습니다. 일반적인 예외 유형을 정의하면 비즈니스 코드로 판단하는 것이 더 정확할 뿐만 아니라 예외 유형 정의도 줄어들고 코드 중복도 줄어듭니다. 현재 제가 사용하는 방식입니다.message判断处理异常逻辑有很多弊端, 比如message是动态的, 那将无法准确的处理. 当然我们也可以定义一个通用的异常类型, 通过业务码去判断会更加准确, 同时也会减少异常类型的定义, 减少代码的冗余. 下面有一段kotlin
으아악
Exception을 직접 던지면 Nginx가 정의된 메시지를 덮어쓰게 되어 특정 정보를 볼 수 없게 됩니다. 권장되는 접근 방식은 예외를 직접 정의하고 RuntimeException을 상속하는 것입니다. 이렇게 하면 예외가 무엇인지 파악하고 문제를 더 쉽게 찾을 수 있습니다.
이해하기 쉽습니다.
예외 잡기간단히 비유하자면,
用户不存在/密码错误...
这些错误类型, 如果你直接使用RuntimeException
코드는 이렇게 작성해야 합니다. 으아악으아악
반대로 사용자 정의 예외는 다음과 같이 구현됩니다.
으아악
예외 잡기으아악
메시지
를 통해 예외 처리 논리를 판단하는 데에는 많은 단점이 있습니다. 예를 들어메시지
가 동적이면 정확하게 처리되지 않습니다.물론 그럴 수도 있습니다. 일반적인 예외 유형을 정의하면 비즈니스 코드로 판단하는 것이 더 정확할 뿐만 아니라 예외 유형 정의도 줄어들고 코드 중복도 줄어듭니다. 현재 제가 사용하는 방식입니다.
message
判断处理异常逻辑有很多弊端, 比如message
是动态的, 那将无法准确的处理.当然我们也可以定义一个通用的异常类型, 通过业务码去判断会更加准确, 同时也会减少异常类型的定义, 减少代码的冗余. 下面有一段
kotlin
으아악설명이 꽤 명확해서 캡쳐하고 처리하기가 쉽네요
예외 이름은 의미가 있어야 하며, RuntimeException 이름은 의미가 없습니다
Exception을 직접 던지면 Nginx가 정의된 메시지를 덮어쓰게 되어 특정 정보를 볼 수 없게 됩니다.
권장되는 접근 방식은 예외를 직접 정의하고 RuntimeException을 상속하는 것입니다. 이렇게 하면 예외가 무엇인지 파악하고 문제를 더 쉽게 찾을 수 있습니다.
런타임 예외는 포착할 필요가 없습니다