抛出异常的三种形式

本文详细介绍了在编程中如何使用三种不同的方式来抛出异常:系统自动抛出、通过throws声明异常以及利用throw语句手动抛出异常。并给出了具体的示例代码帮助理解。

抛出异常有三种形式:①系统自动抛出 ②throws ③throw
有的同学可能不知道该怎么去用。或者经常用到 throws 看到 throw 有点不确定。下面我们一起看一下。

①系统自动抛出 :当程序出现一些逻辑错误、转换错误时,系统会自动抛出异常。 例如:
这里写图片描述
看系统抛出异常:
这里写图片描述
当然这只是其中的一种。除数为0还会抛出ArithmeticException(算数异常),这里不一一例举,同学们自己在工具上实验。

②throws 用来标明一个成员函数可能抛出的各种“异常”。出现在方法头。这也是我们经常用的一个。下面我们直接看例子:

//当明确抛出某个异常,比如上文说到的转换异常(NumberFormatException)
public void add() throws NumberFormatException{
    代码。。。。。
}
//当然也可以抛出全部异常(自我理解,就是全部异常)
public void add() throws Exception{
    代码。。。。。
}

③ throw 语句用来明确地抛出一个“异常”。出现在方法体。 例如:

public void dev(){
    int a = 5 ;
    int b = 1 ;
    if(b==0){
        throw new ArithmeticException() ;
    }else{
        System.out.println(a/b);
            }
}

以上就是抛出异常的三种形式及 throw 和 throws 的具体用法。

### Java抛出异常的两种方式 #### 使用 `throw` 关键字手动抛出异常 当检测到错误条件时,可以使用 `throw` 关键字来显式地抛出一个异常对象。这通常用于验证输入参数的有效性或其他预设条件不满足的情况。 ```java class Student { int id; public void regist(int id){ if (id > 0) { this.id = id; } else { throw new RuntimeException("输入的id非法"); } } @Override public String toString() { return "Student{id=" + id + '}'; } } ``` 在这个例子中,如果传入的学生ID小于等于零,则会立即终止当前方法执行并向上层调用栈传播这个运行时异常[^2]。 #### 使用 `throws` 声明潜在异常 对于那些可能引发但不一定总是发生的受检异常(checked exceptions),可以在方法签名处使用 `throws` 来声明这些异常类型。这样做的好处是在编译阶段就能提醒开发者注意可能出现的问题,并强制他们考虑如何处理这些问题。 ```java public class FileProcessor { // 方法声明了它可能会抛出 IOException 类型的异常 public void readFile(String filePath) throws IOException { try (BufferedReader br = new BufferedReader(new FileReader(filePath))) { String line; while ((line = br.readLine()) != null) { System.out.println(line); } } } } ``` 这里展示了如何在一个文件读取操作中声明了一个具体的检查型异常——`IOException`。任何尝试调用此函数的地方都必须要么自己捕获该异常,要么继续向上传播直至找到合适的处理器为止[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值