2012-05-30 4 views
2

Exceptions에 대해 두 가지 질문이 있습니다. 첫째, 나는 내 코드에서이 메시지를 ... 가지고스레드 "main"의 예외 java.lang.ArithmeticException :/0로

Exception in thread "main" java.lang.ArithmeticException:/by zero 

이 오류 메시지는 그것을 할 수 없습니다, Exception 클래스 인스턴스를 던질 수 int a = 5/0;

방법을 수행하여 같이 0으로 나누는 의미? 그러나 이것은 표현입니다. 왜 표현식이 Exception 클래스 인스턴스를 던질 수 있습니까?

두 번째 질문은 thread "main"입니다. thread "main"은 무엇입니까? "main"static main 메서드를 의미합니까?

답변

3

java.lang.ArithmeticException은 실제로 문제가 무엇인지 더 자세히 설명하고자하는 유형 인 Exception입니다. 실제로 어떤 것으로 인해 발생할 수 있으므로 Exception을 만들지 않습니다. ArithmeticException을 생성함으로써 사용자는 문제가 계산과 관련이 있음을 즉시 알 수 있습니다. Exception은 예제와 같은 계산을 포함하여 모든 코드에 의해 처리 될 수 있습니다.

Exception in thread "main"은 코드를 실행하는 기본 스레드 인 main() 메서드에 의해 예외가 throw됨을 의미합니다.

1

메서드는 예외 클래스 인스턴스를 throw 할 수 있습니까? 그렇습니다.

예. 가능합니다.

그러나 이것은 진술입니다. 문이 예외 클래스 인스턴스를 throw 할 수있는 이유는 무엇입니까?

어디서나 예외가 발생할 수 있습니다. 따라서 심지어 문장은 예외를 던질 수 있습니다. 그리고 당신은 왜 문장이 예외를 던질 수 없는지를 의미한다면 잘 할 수 있습니다. 다음은 그 예입니다.

if ((a/b) == 0) { 
     throw new ArithmeticException(); 
    } 

두 번째 질문은 스레드 "main"에 관한 것입니다. 스레드 "메인"이란 무엇입니까?

Java 프로그램이 시작되면 하나의 스레드가 즉시 실행되기 시작합니다. 이것은 프로그램이 시작될 때 실행되는 프로그램이기 때문에 일반적으로 프로그램의 주 스레드라고합니다.