Java异常处理 throw和throws

目录

  • throw
  • throws
  • 实例
    • 制造异常

在Java中,throwthrows关键字都与异常处理有关,但它们的使用方式和目的有所不同。

throw

throw关键字:

* `throw`用于在代码中显式地抛出一个异常。你可以使用它来触发一个异常,并指定异常的类型。
* `throw`通常用于在特定情况下触发异常,例如当输入数据无效或发生错误时。
* 当你使用`throw`关键字时,程序将立即中断当前操作,并跳转到处理该异常的代码。
* 示例:


```java
public void validateInput(String input) {
    if (input == null || input.isEmpty()) {
        throw new IllegalArgumentException("Input cannot be null or empty");
    }
}
```

throws

throws关键字:

* `throws`用于声明方法可能会抛出的异常。它告诉调用者该方法可能会抛出异常,因此调用者需要处理或继续抛出该异常。
* 当方法可能抛出受检查异常时,必须在方法签名中使用`throws`关键字进行声明。这允许调用者知道并处理这些异常。
* `throws`关键字还可以用于声明方法可能会抛出运行时异常,这些运行时异常不需要显式声明。
* 示例:


```java
public void divide(int a, int b) throws ArithmeticException {
    if (b == 0) {
        throw new ArithmeticException("Division by zero is not allowed");
    }
    int result = a / b;
    System.out.println("Result: " + result);
}
```

在上面的示例中,divide方法声明了它可能会抛出一个ArithmeticException异常。当除数为零时,该方法将抛出该异常。调用者可以使用try-catch块来捕获并处理该异常,或者选择继续抛出该异常。

实例

import java.util.Scanner;

public class Except05 {
    //这是一个main方法,是程序的入口:
    public static void main(String[] args) throws Exception {
        //实现一个功能:两个数相除,当除数为0的时候,程序出现异常。
        try {
            devide();
        } catch (Exception e) {
            e.printStackTrace();
        }
        devide();
    }
    public static void devide() throws Exception {
        Scanner sc = new Scanner(System.in);
        System.out.println("请录入第一个数:");
        int num1 = sc.nextInt();
        System.out.println("请录入第二个数:");
        int num2 = sc.nextInt();
        if(num2 == 0 ){//除数为0 ,制造异常。
            //制造运行时异常:
            /*throw new RuntimeException();*/
            //制造检查异常:
            /*try {
                throw new Exception();
            } catch (Exception e) {
                e.printStackTrace();
            }*/
            throw new Exception();
        }else{
            System.out.println("商:"+num1/num2);
        }
    }
}

Java异常处理 throw和throws_第1张图片

制造异常

Java异常处理 throw和throws_第2张图片

你可能感兴趣的:(JAVA,java,开发语言)