C# 입문서에서 무엇을해야할지 모르는 경우에는 예외를 잡지 말아야한다는 것을 읽었습니다. Java에서 프로그래밍 할 때 약간의 조언을 생각하면, 예외 상황을 어떻게 처리해야할지 모르지만, 컴파일 오류를 피하기 위해 "catch"하거나 "percolate"해야합니다. 나는 차라리 throws
절을 가진 메서드를 복잡하게하지 않을 것이다. 그래서 나는 종종 다음과 같이 RuntimeException
에 대한 예외를 "변환"하는 것에 의지했다. throws
절을 실제로 "처리"(적절하게 처리되지 않음) 예외에 대한 많은 메소드에 추가하는 것은 장황하고 혼란스럽게 보입니다. 다음과 같은 나쁜 스타일이 있습니까? 그렇다면이 문제를 해결하는 더 좋은 방법은 무엇입니까?치명적인 예외 처리
try {
thread.join();
}
catch (InterruptedException e) {
Console.printwriter.format("%s\n", e.printStackTrace());
throw new RuntimeException();
}
편집 : 당신은 아마 불필요한 throws
조항으로 끝낼 코드 수정 후 : 제외 혼란에서의 관류 예외 또 다른 문제가있다. 내가 그들을 청소하는 법을 알기위한 유일한 방법은 시행 착오이다 : 그것을 제거하고 컴파일러가 불평하는지 확인한다. 당신이 코드를 깨끗하게 유지하고 싶다면 분명히, 이것은 성가신 일이다.
더 나은 방법은 예외를 지속적으로 던지지 않아도되는 방식으로 코드를 작성하는 것입니다. – lifetimes
동의. 나는 일반적으로 새로 정의 된 예외를 많이 선언하지 않습니다. 저는 주로 제 3 자 및 Java 예외에 대해 우려하고 있습니다. – H2ONaCl
@ user1394965 예, 코드에서 예외가 "지속적으로"발생해서는 안됩니다. 그러나 예외가 가능한지 여부는 매우 다른 문제입니다. 입출력 조작이나 블로킹 방법을 포함한 모든 작업은 피할 수없는 예외 처리로 인해 어려움을 겪을 수 있습니다. –