throws 키워드를 사용하여 사용자 정의 예외를 throw 할 때 명시 적으로 처리해야합니다. 이자형. try-catch 블록 내에서 메서드를 호출해야하지만 try-catch 블록을 사용하여 main 메서드 내부에서 처리하지 않으면 throws
키워드를 사용하여 기본 제공 예외를 throw하는 동안 컴파일 타임 오류가 발생하지 않습니다. 런타임 예외가 발생하는 것은 허용됩니다. 내 질문은 사용자 정의 예외를 처리하지 않는 경우 컴파일 타임 오류가 발생합니다 : 처리되지 않은 예외입니다. 이의 경우는 아니지만 내장 예외사용자 정의 예외 처리
class B
{
public void show() throws ArithmeticException
{
throw new ArithmeticException();
}
}
public class Myclass {
public static void main(String[] args) {
B b = new B();
b.show();
}
}
나는 산술 예외를 처리하지 않고 위의 코드를 컴파일 할 때 그때
class A extends Exception
{
public A()
{
System.out.println("Exception thrown");
}
}
class B extends A
{
public void show() throws A
{
throw new A();
}
}
public class Myclass {
public static void main(String[] args) {
B b = new B();
b.show();
}
}
는하지만 컴파일 어떤 컴파일 타임 오류가 발생하지 않습니다 위의 코드에서는 컴파일 타임 오류가 발생하여 A 유형의 예외를 처리하지 못했다는 것을 알 수 있습니다. 따라서 사용자 정의 예외를 처리해야 할 때 기본 제공 예외를 처리 할 수없는 이유는 무엇입니까?
달성하려는 내용을 더 잘 이해할 수 있도록 예제 코드를 추가하십시오. – sebadagostino
클래스 Exception을 확장하여 생성 한 예외는 확인 된 예외이며 메서드 선언에 throw되도록 선언하거나 try-catch를 사용하여 처리해야한다고 생각합니다. 산술 예외는 핸들 또는 선언 규칙이 강제적이지 않은 런타임 예외 유형입니다. –
클래스 runtimexception을 확장하여 예외를 만들면 코드가 컴파일됩니다. –