- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
",t};e.buildCustomizationMenuUi=t;function n(e){let t='
",t}function s(e){let n=e.filter.currentValue||e.filter.defaultValue,t='${e.filter.label}
`,e.filter.options.forEach(s=>{let o=s.id===n;t+=``}),t+="${e.filter.label}
`,t+=`ID: java-best-practices/avoid-propagate-exception-info
Language: Java
Severity: Warning
Category: Best Practices
This rule aims to discourage the direct propagation or usage of exception messages in the code. Exception messages can often contain sensitive or implementation-specific information that should not be exposed or relied upon for program logic. Relying on exception messages can lead to fragile code that breaks if the message text changes in future library or framework updates.
To comply with this rule, handle exceptions by using their types, custom error codes, or well-defined error objects instead of their message strings. For example, instead of e.getMessage()
, consider catching specific exception subclasses or defining your own error classification. This approach leads to cleaner, more reliable error handling and protects sensitive information.
Example of compliant handling: catch (SpecificException ex) { log("Known error occurred"); }
rather than inspecting ex.getMessage()
contents.
class Foo {
public bar() {
try {
// something
} catch (Exception e) {
var message = someList.contains(e.getCause()) ? "known issue" : "unknown"
System.out.println(message)
}
}
}
class Foo {
public bar() {
try {
// something
} catch (Exception e) {
var message = someList.contains(e.getMessage()) ? e.getMessage() : "unknown"
System.out.println(message)
}
}
}
class Foo {
public bar() {
try {
// something
} catch (Exception e) {
System.out.println(message)
}
}
}