문제

런타임을 예외로하는 것이 합리적 인 이유는 무엇입니까? 확인되지 않았습니다 (그들이 있으면 반대로 확인)?

도움이 되었습니까?

해결책

그렇지 않은 경우 배열 요소에 액세스 할 때마다 시도/캐치 블록을 가져야 할 것입니다.

다른 방법으로 말하면이 코드를 상상해보십시오.

Map map = ...
int i = ...
(int[])map.get("foo")[3] = 2334 / i;

확인해야합니다 ClassCastException, ArrayIndexOutofBoundsException, ArithmeticException, UnsupportedOperationException 그리고 NullPointerException 내 머리 꼭대기에서.

Java를 사용하면 문제가 확인되지 않은 예외가 아닙니다. 점검 된 예외는 논란의 여지가있는 주제입니다. 어떤 사람들은 이것이 주로 Java에 대한 실험이라고 말하며 실제로는 효과가 없지만 자신이 좋다고 주장하는 많은 사람들을 찾을 것입니다.

그러나 아무도 확인되지 않은 예외는 나쁘다고 주장하지 않습니다.

다른 팁

Java의 두 가지 예외에 대한 아이디어 (점검 및 확인되지 않은)는 합리적으로 예상 될 수있는 오류 조건에 검사 된 예외를 사용해야하며, 예상치 못한 예외는 예기치 않은 오류 조건에 사용되어야한다는 것입니다.

예를 들어 파일을 찾지 못하면 FileNotFoundException, 그리고 프로그램이 그러한 조건을 처리 할 수있을 것으로 기대하는 것이 합리적입니다. 확인되지 않은 예외는 발생하지 말아야 할 문제에 대해서만 사용해야하며, 이는 이러한 문제가 발생하면 프로그램에 버그가 있음을 의미합니다. 예를 들어, a NullPointerException 귀하의 프로그램이 변수를 해석하려고한다는 것을 의미합니다. null 그리고 그것은 아마도 버그 일 것입니다.

Java 컴파일러는 프로그래머가 점검 된 예외를 처리하도록 강요합니다. 이것은 프로그래밍 언어를 더 안전하게 만듭니다. 프로그래머가 오류 조건에 대해 생각해야한다는 것을 의미합니다. 이는 프로그램을보다 강력하게 만들어야합니다.

컴파일러는 확인되지 않은 예외를 확인하지 않습니다. 확인되지 않은 예외는 어쨌든 발생하지 않아야하며, 그렇다면 프로그램이 런타임에 합리적으로 할 수있는 것은 없습니다. 프로그래머는 버그를 해결해야합니다.

Java에서는이 기능에 대해 약간의 비판이 있었으며 일부 사람들은 심지어 확인 된 예외라고 부릅니다. 실패한 실험 그리고 어떤 사람들 점검 된 예외를 제거 할 것을 제안하십시오 Java에서.

이것은 단순히 컴파일러가 예외를 찾도록 강요하지는 않지만 여전히 런타임에 던질 수 있음을 의미합니다. 한 가지 이점으로,이를 통해 인터페이스를 변경하지 않고 클래스에서 새로운 예외를 제외 할 수있어 발신자가 코드를 변경할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top