一文搞定Java修异常处理

try{
// 待检测的程序代码
}catch(异常类型1 异常的变量名1){
// 若为异常类型1采取操作
}catch(异常类型2 异常的变量名2){
// 若为异常类型2采取操作
}finally{
// 无论是否发生异常,finally 代码块中的代码总会被执行,起善后收尾作用。
}```
Throwable
Error
Exception
RuntimeException
CheckedException
OutOfMemoryError
StackOverflowError
NullPointerException
ArrayIndexOutOfBoundsException
IOException
SQLException

非检查型异常(或运行时异常,继承自RuntimeException):这些异常在编译时不需要被处理,它们通常表示编程错误,如空指针异常(NullPointerException)、数组越界异常(ArrayIndexOutOfBoundsException)等。RuntimeException及其子类都属于非检查型异常,因此它们可以不被try-catch块捕获,也不需要使用throws关键字声明抛出。

throws/throw 关键字

在Java中, throw 和 throws 关键字是用于处理异常的。
throw 关键字用于在代码中抛出异常,而 throws 关键字用于在方法声明中指定可能会抛出的异常类型。在你的代码中,throw new Exception(“A custom error occurred”);这行代码是在list.size()>1的情况下主动抛出一个异常。这意味着,如果列表的大小大于1,那么你希望程序立即停止,并通知调用者发生了一个错误。这个错误信息就是"A custom error occurred"

throw 关键字

throw 关键字用于在当前方法中抛出一个异常。

通常情况下,当代码执行到某个条件下无法继续正常执行时,可以使用 throw 关键字抛出异常,以告知调用者当前代码的执行状态。

例如,下面的代码中,在方法中判断 num 是否小于 0,如果是,则抛出一个 IllegalArgumentException 异常。

实例

而throw则是用来主动抛出一个异常,转到catch处理。当你的代码遇到了一个错误情况,你希望立即停止当前的操作,并将错误信息传递给调用者,那么你可以使用throw来抛出一个异常。

public void checkNumber(int num) {  
  if (num < 0) {  
    throw new IllegalArgumentException("Number must be positive");  
  }  
}  

throws 关键字

throws 关键字用于在方法声明中指定该方法可能抛出的异常,不处理,抛给上层调用者。当方法内部抛出指定类型的异常时,该异常会被传递给调用该方法的代码,并在该代码中处理异常。
例如,下面的代码中,当 readFile 方法内部发生 IOException 异常时,会将该异常传递给调用该方法的代码。在调用该方法的代码中,必须捕获或声明处理 IOException 异常。

实例

public void readFile(String filePath) throws IOException {  
  BufferedReader reader = new BufferedReader(new FileReader(filePath));  
  String line = reader.readLine();  
  while (line != null) {  
    System.out.println(line);  
    line = reader.readLine();  
  }  
  reader.close();  
}  

一个方法可以声明抛出多个异常,多个异常之间用逗号隔开。
例如,下面的方法声明抛出 RemoteException 和 InsufficientFundsException:

import java.io.*; 
public class className { 
public void withdraw(double amount) throws RemoteException, InsufficientFundsException 
{ // Method implementation } //Remainder of class definition }
  • 28
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值