나는 Java를 처음 사용 하고 예외에 대한 문서를 읽고있었습니다 . , 특히 확인되지 않은 예외-논쟁 페이지.
결론은 다음과 같습니다.
클라이언트가 예외로부터 적절히 복구 될 것으로 예상되는 경우이를 확인 된 예외로 만듭니다. 클라이언트가 예외에서 복구 할 작업을 수행 할 수 없으면 검사되지 않은 예외로 만드십시오.
기사를 이해하지 못합니다. “논쟁”이란 무엇입니까? 간단한 단어로 설명 할 수 있습니까?
나는 Java를 처음 사용 하고 예외에 대한 문서를 읽고있었습니다 . , 특히 확인되지 않은 예외-논쟁 페이지.
결론은 다음과 같습니다.
클라이언트가 예외로부터 적절히 복구 될 것으로 예상되는 경우이를 확인 된 예외로 만듭니다. 클라이언트가 예외에서 복구 할 작업을 수행 할 수 없으면 검사되지 않은 예외로 만드십시오.
기사를 이해하지 못합니다. “논쟁”이란 무엇입니까? 간단한 단어로 설명 할 수 있습니까?
답변:
먼저 예를 들어 보겠습니다. (마지막으로 논쟁의 이유는 답변입니다.)
Java 기반 문서 편집기에서 문서를 편집하고 완료 한 후 파일-> 다른 이름으로 저장 ...을 선택하고 쓰기 권한이없는 볼륨에 문서를 저장하기로 선택했다고 가정 해 봅시다. 편집기는 추악한 스택 추적으로 충돌하지 않으며 파일을 저장할 수 없으며 다른 위치로 편집 및 / 또는 저장을 계속할 수 있음을 알려줍니다.
그러한 경우에는 아마도 확인 된 예외가 예상되어 잡히고 그로부터 은혜롭게 회복하기 위해 행동했을 것입니다.
반면에 특정 조건에서만 못생긴 머리를 키우는 프로그래밍 오류로 인해 0으로 나누거나 널 포인터 예외로 가정하십시오. 코드의 어느 곳에서나 RAM이 손상 될 수 있습니다. 어떤 API doc도 "RAM이 손상된 경우이 방법은 0으로 나누기를 던질 것" 이라고 말하지 않습니다 .
확인 된 예외는 디자인의 일부 여야하며 해당 API 사용자는 예외 처리를 준비해야합니다. 확인되지 않은 예외는 거의 모든 곳에서 발생할 수 있으며 통제 할 수 없습니다.
확인 된 예외를 사용해야 할 때 확인되지 않은 예외를 사용 하는 프로그래머 (런타임 예외에서 연장)로부터 논란이 발생합니다 .
해당 페이지에는 논쟁이 없습니다. 사람들에게 확인 된 예외를 사용하도록 말하는 것은 Oracle입니다.
그들이 발명 한 가짜 '논쟁'은 언어 디자이너와 언어 사용자 사이에 있습니다. 디자이너는 사람들이 던지거나 붙잡아서는 안되는 물건을 던지고 붙잡을 수 있도록했습니다. 그래서 그들은 게으른 개발자에 대해 불평하는 웹 페이지를 만들었습니다.