나는 예외 상황이 어디에서 파생되는지 이해하려고 시도하고있다. 내 질문은 끝이지만, 나는 그것을 더 명확하게 할 수있는 모범을 제시 할 것이다.예외가 기본입니까, 아니면 조건으로 대체 될 수 있습니까?
예를 들어,이 Java 코드를 사용하십시오. 그것에는 파일에 경로가 있고 File
목표를 설치했다. 패스가 null의 경우, 예외가 Throw됩니다.
String path = getPathName();
try {
File file = new File(path);
} catch (NullPointerException e) {
// ...
}
이하지만, 거의 예외적 인 상황입니다, 우리는이보다 더 낫다 될 수있는 방법으로 수정할 수있는 경우 :
String path = getPathName();
if (path == null) {
path = DEFAULT_PATH;
}
File file = new File(path); # we've removed the need for an exception
그러나 더 이상 이동하지, 우리는 새로운 예외 경우에 실행 우리는 시도하고 File
읽을 수 있도록합니다.
try {
file.setReadable(true);
} catch (SecurityException e) {
// ...
}
우리는 두 가지 조건을 확인하여이 문제를 해결 치마 할 수 있습니다 내 질문에, 마음이 예제
SecurityManager sm = System.getSecurityManager();
if (sm != null && sm.checkWrite(path)) {
// modify the SecurityManager
} else {
file.setReadable(true);
}
을 ...
우리가 아래로 이동하는 경우 stack, Java에서 OS로가는 등 if-else 브랜치로 모든 예외 처리 코드를 대체 할 수 있습니까? 아니면 프로그래밍에 "구워진"예외 (하드웨어)의 근본 원인이 있습니까?
가까운 투표가 필요한 이유는 무엇입니까? – sdasdadas
너무 넓은 옵션이 선택되어 있습니다. 그래서, 나는 이것이 너무 많은 답변을 가질 까봐 두려웠다 고 생각한다. – Marcin
아, 나는 나 자신을 위해 투표하지 않고 추론을 볼 수 있다는 것을 몰랐다. – sdasdadas