17-异常

异常:处理/抛出

异常处理:

try{
  // 程序代码
}catch(异常类型1 异常的变量名1){
  // 程序代码
}catch(异常类型2 异常的变量名2){
  // 程序代码
}finally{
  // 程序代码
}

异常抛出:(向调用方法的上一级抛出一个异常)

 public void example() throws RemoteException
  {
    // Method implementation
    throw new RemoteException();
  }

自定义异常:异常处理|菜鸟教程

// 文件名InsufficientFundsException.java
import java.io.*;
 
//自定义异常类,继承Exception类
public class InsufficientFundsException extends Exception
{
  //此处的amount用来储存当出现异常(取出钱多于余额时)所缺乏的钱
  private double amount;
  public InsufficientFundsException(double amount)
  {
    this.amount = amount;
  } 
  public double getAmount()
  {
    return amount;
  }
}

注意:

  • 异常的声明是API的⼀部分
  • 异常处理不能代替简单的测试
  • 不要过分地细化异常
  • 利⽤异常层次结构
    • 不要只抛出RuntimeException异常,应该寻找更合适的⼦类或者创建⾃⼰的异常类
  • 不要压制异常
  • 在检测错误时,“苛刻”要⽐放任更好
    • 在出错的地⽅抛出⼀个EmptyStackException异常要⽐在后⾯抛出⼀个NullPointerException异常更好
  • 不要羞于传递异常
    • 早抛出,晚捕获

处理异常的解决方法:

  • Solution 1
    • 抛出try语句块中阐述的原始异常,忽略在finally语句块中产⽣的异常
  • Solution 2
    • 把产⽣的异常都记录下来
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值