java笔记Java中的异常(exception)和异常处理

Posted 棉花糖灬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java笔记Java中的异常(exception)和异常处理相关的知识,希望对你有一定的参考价值。

异常处理

java的异常可以分为三种:

  • 检查性异常:程序员不能预见的异常,如打开一个不存在的文件
  • 运行时异常:程序员可以避免的异常,如空指针异常
  • 错误: 错误不是异常,而是脱离程序员控制的问题,如超出内存错误

1. 异常类的层次

img

异常类的层次关系如上图所示,Error和Exception都是Throwable的子类,Exception又可以分为IOException类和RuntimeException类。

2. 常用方法

  • public String getMessage():返回关于发生的异常的详细信息。这个消息在Throwable 类的构造函数中初始化了
  • public Throwable getCause():返回一个Throwable 对象代表异常原因
  • public String toString():使用getMessage()的结果返回类的串级名字
  • public void printStackTrace():打印toString()结果和栈层次到System.err,即错误输出流
  • public StackTraceElement [] getStackTrace():返回一个包含堆栈层次的数组。下标为0的元素代表栈顶,最后一个元素代表方法调用堆栈的栈底
  • public Throwable fillInStackTrace():用当前的调用栈层次填充Throwable 对象栈层次,添加到栈层次任何先前信息中

3. 捕获异常

  • 使用 try 和 catch 关键字可以捕获异常。try/catch 代码块被称为保护代码

  • 使用多重捕获时,一般是子类在前,父类在后,不然编译时程序会报错

  • finally中是无论是否发生异常都会最后执行的代码。try后必须catch或finally至少有一个

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

4. throws/throw关键字

如果一个方法没有捕获到一个检查性异常,那么该方法必须使用 throws 关键字来声明。throws 关键字放在方法签名的尾部。也可以使用 throw 关键字抛出一个异常,无论它是新实例化的还是刚捕获到的。

import java.io.*;
public class className
{
  public void deposit(double amount) throws RemoteException
  {
    // Method implementation
    throw new RemoteException();
  }
  //Remainder of class definition
}

以上是关于java笔记Java中的异常(exception)和异常处理的主要内容,如果未能解决你的问题,请参考以下文章

Java基础学习笔记十八 异常处理

Java 学习笔记之 Error和Exception的联系

Java学习笔记3.10.1异常处理 - 异常类型

[学习笔记]Java异常机制

Java异常机制 学习笔记一

java中的try-catch-finnal异常处理(学习笔记)