Java에서는 사용자 정의 예외 또는 사용자 정의 예외라고 하는 고유한 예외를 만들 수 있습니다.
사용자 정의 예외를 생성하려면 위 클래스 중 하나를 확장하세요. 메시지를 표시하려면 toString() 메서드를 재정의하거나 문자열 형식의 메시지를 우회하여 매개변수화된 슈퍼클래스 생성자를 호출하세요.
MyException(String msg){ super(msg); } Or, public String toString(){ return " MyException [Message of your exception]"; }
그런 다음 이 예외를 발생시켜야 하는 다른 클래스에서 생성한 사용자 정의 예외 클래스의 객체를 생성하고 throw 키워드를 사용하여 예외를 발생시킵니다.
MyException ex = new MyException (); If(condition……….){ throw ex; }
모든 예외는 Throwable의 하위 클래스여야 합니다.
Handle 또는 Declare 규칙에 의해 자동으로 적용되는 확인된 예외를 작성하려면 Exception 클래스를 확장해야 합니다.
런타임 예외를 작성하려면 RuntimeException 클래스를 확장해야 합니다.
다음 Java 프로그램은 사용자 정의 확인 예외를 만드는 방법을 보여줍니다.
온라인 데모
import java.util.Scanner; class NotProperNameException extends Exception { NotProperNameException(String msg){ super(msg); } } public class CustomCheckedException { private String name; private int age; public static boolean containsAlphabet(String name) { for (int i = 0; i < name.length(); i++) { char ch = name.charAt(i); if (!(ch >= 'a' && ch <= 'z')) { return false; } } return true; } public CustomCheckedException(String name, int age){ if(!containsAlphabet(name)&&name!=null) { String msg = "Improper name (Should contain only characters between a to z (all small))"; NotProperNameException exName = new NotProperNameException(msg); throw exName; } this.name = name; this.age = age; } public void display(){ System.out.println("Name of the Student: "+this.name ); System.out.println("Age of the Student: "+this.age ); } public static void main(String args[]) { Scanner sc= new Scanner(System.in); System.out.println("Enter the name of the person: "); String name = sc.next(); System.out.println("Enter the age of the person: "); int age = sc.nextInt(); CustomCheckedException obj = new CustomCheckedException(name, age); obj.display(); } }
위 프로그램을 컴파일할 때 다음 예외가 발생합니다.
CustomCheckedException.java:24: error: unreported exception NotProperNameException; must be caught or declared to be thrown throw exName; ^ 1 error
사용자 정의 예외가 상속하는 클래스를 RuntimeException으로 변경하면 런타임에 해당 클래스가 발생합니다
class NotProperNameException extends RuntimeException { NotProperNameException(String msg){ super(msg); } }
If you 위 프로그램을 실행하고 NotProperNameException 클래스를 위 코드로 바꾸고 실행하면 다음 런타임 예외가 생성됩니다.
Enter the name of the person: Krishna1234 Enter the age of the person: 20 Exception in thread "main" july_set3.NotProperNameException: Improper name (Should contain only characters between a to z (all small)) at july_set3.CustomCheckedException.<init>(CustomCheckedException.java:25) at july_set3.CustomCheckedException.main(CustomCheckedException.java:41)
위 내용은 Java의 사용자 정의 예외의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!