직접 작성한 코드, Java 개발 환경 패키지의 코드 또는 Java 런타임 시스템과 같은 모든 Java 코드는 예외를 발생시킬 수 있습니다. 누구나 Java의 throw 문을 통해 예외를 던질 수 있습니다. 메서드에서 발생하는 모든 예외는 throws 절을 사용해야 합니다.
1. throws에서 예외 발생
메서드가 예외를 발생시킬 수 있지만 이러한 예외를 처리할 수 없는 경우 메서드 선언에서 throws 절을 사용하여 예외가 발생함을 선언할 수 있습니다. 예를 들어, 자동차가 운행 중 오작동을 일으킬 수 있는 경우, 차량 자체가 오작동을 처리할 수 없으므로 운전자가 처리하도록 하십시오.
throws 문은 메소드를 정의할 때 해당 메소드가 발생시킬 예외 유형을 선언하는 데 사용됩니다. 예외 유형이 발생하면 메소드가 모든 예외를 발생시키도록 선언됩니다. 여러 예외는 쉼표로 구분할 수 있습니다. throws 문의 구문 형식은 다음과 같습니다.
methodname throws Exception1,Exception2,..,ExceptionN 예외 목록. 메소드가 예외 목록에서 예외를 발생시키는 경우 해당 메소드는 이러한 유형 및 해당 서브클래스의 예외를 처리하지 않지만 처리를 위해 메소드를 호출하는 메소드에 예외를 발생시킵니다. 예:
import java.lang.Exception; public class TestException { static void pop() throws NegativeArraySizeException { // 定义方法并抛出NegativeArraySizeException异常 int[] arr = new int[-3]; // 创建数组 } public static void main(String[] args) { // 主方法 try { // try语句处理异常信息 pop(); // 调用pop()方法 } catch (NegativeArraySizeException e) { System.out.println("pop()方法抛出的异常");// 输出异常信息 } } }
throw new exceptionname;입니다. 예를 들어 IOException 클래스의 예외 개체를 발생시키는 경우:
throw new IOException;던지기(throw)는 던질 수 있는 클래스 Throwable 또는 그 하위 클래스의 인스턴스 객체만 될 수 있습니다. 다음 작업이 잘못되었습니다.
throw new String(“exception”)이는 String이 Throwable 클래스의 하위 클래스가 아니기 때문입니다. 확인된 예외가 발생하는 경우 해당 메소드가 발생시킬 수 있는 예외 유형도 메소드 헤더에 선언되어야 합니다. 이 메서드의 호출자는 발생한 예외를 처리하는지 확인해야 합니다. 모든 메소드가 획득한 예외를 계층별로 발생시키면 결국 JVM이 이를 처리하게 됩니다. 예외 메시지와 스택 정보를 인쇄하는 처리도 매우 간단합니다. Error 또는 RuntimeException이 발생하는 경우 메서드 호출자는 예외를 처리하도록 선택할 수 있습니다.
package Test; import java.lang.Exception; public class TestException { static int quotient(int x, int y) throws MyException { // 定义方法抛出异常 if (y < 0) { // 判断参数是否小于0 throw new MyException("除数不能是负数"); // 异常信息 } return x/y; // 返回值 } public static void main(String args[]) { // 主方法 int a =3; int b =0; try { // try语句包含可能发生异常的语句 int result = quotient(a, b); // 调用方法quotient() } catch (MyException e) { // 处理自定义异常 System.out.println(e.getMessage()); // 输出异常信息 } catch (ArithmeticException e) { // 处理ArithmeticException异常 System.out.println("除数不能为0"); // 输出提示信息 } catch (Exception e) { // 处理其他异常 System.out.println("程序发生了其他的异常"); // 输出提示信息 } } } class MyException extends Exception { // 创建自定义异常类 String message; // 定义String类型变量 public MyException(String ErrorMessagr) { // 父类方法 message = ErrorMessagr; } public String getMessage() { // 覆盖getMessage()方法 return message; } }Java 프로그래밍에서 예외를 던지는 방법을 간단히 이해하는 것과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트에 주목하세요!