2015-01-15 2 views
1

내 질문 시나리오 내가 산술 예외가 프로그램을 가지고 있지만 예외를 잡는 방법을 알고 있습니다. 그 일은 내가 어떤 데이터 구조에서 예외를 저장할 필요가 나중에, 어떤 데이터 구조가 적합 retrive 필요합니다. 내 코드는 다음과 같습니다.어떤 데이터 구조가 Java에서 로거없이 예외를 저장하는 데 적합합니까?

public class ExceptionTest { 
public static void main(String[] args) { 

    int i = 10, j = 0; 
    try { 

     System.out.println(i/j); 
    } catch (Exception ex) { 

     //need to store exception in some DS(which one is best Suitable and why? 
     System.out.println(ex.getMessage()); 
    }   
} 
} 

나를 안내하십시오. 도움을 받으실 수 있습니다.

+1

. 왜 이것을하고 싶은지에 대한 힌트를 줄 수 있습니까? 그것을 성취 할 수있는 다른 방법이있을 수 있습니다. – sprinter

+0

이 경우 HashMap이 유용 할 수 있습니다. – sandipon

+0

스택을 사용하면 예외 주문을받을 수도 있습니다. 그런데 예외를 저장하려는 이유는 무엇입니까? 달성하고자하는 것은 무엇입니까? – Sarz

답변

0

시작 또는 끝 요소 (Exceptions)에 액세스하려는 경우 대부분 또는 queue 형태로 LinkedList을 사용할 수 있습니다.

다음 검색은 빠른 검색을 위해 준비하지만 순서가 순회 할 수 있습니다. HashSet입니다.

+0

nash_ag, 모든 유형의 데이터 구조, LinkedList 또는 HashSet 중에서 위의 요구 사항에 적합합니까? – khanam

+0

'LinkedList'는 순서 유지에 도움이됩니다. 중요하지 않다면'HashSet'으로갑니다. –

+0

nash_ag, 결론에 오기 전에 당신의 대답이 더 낫다거나 (Mital Awachat) 그의 대답이 최고라고 말해 주시겠습니까? – khanam

0

예외를 저장하기 위해 ArrayList를 유지 관리 할 수 ​​있습니다.

ArrayList<Exception> exceptionList = new ArrayList<>(); 
    exceptionList.add(exception); 

ObjectListener를 유지하려면 ObjectOutputStream을 사용할 수 있습니다.

전체 코드 :

수입 인 java.util.ArrayList;

공용 클래스 ExceptionTest {

public static void main(String[] args) { 
    ArrayList<Exception> exceptionList = new ArrayList<>(); 
    int i = 10, j = 0; 
    try { 
     System.out.println(i/j); 
    } catch (Exception ex) { 
     //need to store exception in some DS(which one is best Suitable and why? 
     exceptionList.add(ex); 
     System.out.println(ex.getMessage()); 
    } 
} 

} 좋은 아이디어 같은 소리하지 않습니다

+0

Mital Awachat, 위의 요구 사항에 적합하고 모든 데이터 구조 중에서 가장 적합합니까? – khanam

+0

예, 모든 예외를 저장, 검색 및 읽을 수 있습니다. 다음 스 니펫 도움말이 도움이 되었기를 바랍니다. // 모든 예외 검색 (예외 예외 : exceptionList) { System.out.println (예외 .getMessage()); } //시도 { } ObjectOutputStream outputStream = 새 ObjectOutputStream (새 FileOutputStream ("file.txt")); outputStream.writeObject (exceptionList); } catch (Exception ex) { ex.printStackTrace(); } –

관련 문제