질문 :둘 다 수행하는 방법 : outer
메서드에서 예외를 처리하고 inner
메서드의 결과를 반환 하시겠습니까?Java : 예외를 처리하고 내부 메서드에서 결과를 반환하십시오.
제가 가지고 List
를 반환 두가지 방법 :
import java.util.List;
import java.util.LinkedList;
public class HelloWorld {
public static void main(String[] args){
System.out.println("Result = " + new HelloWorld().parseWrapper());
}
public List<Integer> inner() {
List<Integer> list = new LinkedList<Integer>();
for (int i = 0; i < 5; i++) {
if (i % 4 == 0) throw new RuntimeException();
list.add(i);
}
return list;
}
public List<Integer> outer() {
List<Integer> list = null;
try {
list = parse();
} catch (Exception e) {
System.out.println("Handle exception!");
} finally {
return list;
}
}
}
결과 :
Handle exception!
Result = null // PROBLEM: I DON'T WANT TO LOOSE IT
문제점 : I 느슨한 결과리스트. 나는 예외를 처리하고 outer
메서드에서 [1, 2, 3]리스트를 반환하기를 원한다.
는'Result' 객체 모자는'list'와'exception'을 가지고 만들기를. 그걸 돌려 보내라. –
'outer '메소드의'새로운 HelloWorld(). parseWrapper()'와'parse()'는 모두 구문 오류입니다. 'outer'와'inner'는 원래'parseWrapper'와'parse'라고 가정해야합니까? –
BTW, 'finally'블록에서 돌아 오는 것은 일반적으로 나쁜 것으로 간주됩니다. http://stackoverflow.com/questions/48088/returning-from-a-finally-block-in-java –