예, 시도 범위가 제한되어 있습니다.사실 범위는 시작 {와 함께 종료}, 따라서이 또한 문제를 해결하려면 하위 범위
void foo() {
{
Ini myIni = new Ini(new FileReader(myFile));
}
myIni.get("toto"); //error here, since myIni is out of scope
}
을 만들 null를 myIni
를 초기화하고, 시도가 실패 할 경우, myIni.get("toto");
이 될 것이라고 인식 될 것이다 NullPointerException.
그래서 계정을 잡거나 catch 블록에서 다른 예외를 throw해야합니다. 널 (null)에 대한
확인 :
Ini myIni = null;
try {
myIni = new Ini(new FileReader(myFile));
} catch (IOException e) {
e.printStackTrace();
}
if(myIni != null) {
myIni.get("toto");
//access the rest of myIni
} else {
//handle initialization error
}
던져 예외 :
Ini myIni = null;
try {
myIni = new Ini(new FileReader(myFile));
} catch (IOException e) {
e.printStackTrace();
throw new MyCustomInitFailedException(); //throw any exception that might be appropriate, possibly wrapping e
}
myIni.get("toto");
은 이미 그것이 가능하고 적절하다면 당신은 또한
myIni
의 전체 사용의 주위에 try 블록을 넣을 수 @khachik에 의해 제안했다. 선택한 솔루션은 다른 요구 사항과 디자인에 따라 다릅니다.
'e.printStackTrace()'하지 마십시오. 그냥 '던져'. – BalusC