异常
本文最后更新于 295 天前,其中的信息可能已经有所发展或是发生改变。

异常

Throwable

特点

  • 异常类的基类
  • 所有的异常类(Exception,Error)都继承于Throwable
  • 提供了通用的方法用来获取异常的信息

方法

方法 描述
String getMessage() 获取异常的简要描述,通常是传入异常构造器的字符串
String getLocalizedMessage() 获取本地化的异常信息,子类可重写
String toString() 返回异常的类名与详细信息
void printStackTrace() 打印异常的堆栈信息到System.err
void printStackTrace(PrintStream s) 将异常的堆栈信息输出到指定的PrintStream
void printStackTrace(PrintWriter) 将异常的堆栈信息输出到指定的PrintWriter

分类

检查型异常

  • CheckedException
  • 编译时异常,必须要处理,否则程序无法运行

常见异常类

类名 描述
IOException 输入/输出异常的基类
SQLException 数据库访问异常的基类
ClassNotFoundException 试图访问不存在的类
NoSuchMethodException 试图访问不存在的方法
IllegalAccessException 没有权限访问类或方法
InterruptedException 线程被打断时抛出的异常
FileNotFoundException 访问文件失败,文件不存在或无权限
MalformedURLException URL格式错误
EOFException 读取文件或流时遇到文件结尾
UnknownHostException 试图解析位置的主机地址
SQLTimeoutException 数据库操作超时
SQlSyntaxErrorException SQL语法错误

非检查型异常

  • UncheckedException,RuntimeException
  • 运行时异常,由程序运行时的错误引起

常见异常类

类名 描述
ArithmeticException 算数异常
NullPointerException 空指针异常
ArrayIndexOutOfBoundsException 数组越界异常
NegativeArraySizeException 负数数组大小异常
ClassCaseException 类型转换异常
IllegalArgumentException 非法参数异常

错误

  • Error
  • 通常由JVM引起,表示JVM本身的故障

常见异常类

类名 描述
OutOfMemoryError JVM内存溢出
StackOverflowError 方法调用栈溢出

异常处理

异常捕获

使用

  • 通过try-catch语句捕获异常
  • java7之后支持多异常捕获
    关键字 描述
    try 包含可以会产生异常的代码块
    catch 捕获匹配catch块的异常并进行相应的处理
    finally 无论是否发生异常,都会执行处理,通常用于关闭资源

示例

try{
    int a = 0 / 2;
}catch(ArithmeticException e){
    e.printStackTrace();
}catch(NullPointerException | ArrayIndexOutOfBoundsException e){
    //多异常捕获处理
}finally{
    System.out.println("end");
}

抛出异常

使用

  • 通过throw语句显式的抛出异常

示例

throw new Exception();

声明异常

使用

  • 在方法声明时,使用throws关键字声明异常

示例

public void readFile(String fileName) throws IOException{
    //...
}

异常链

使用

  • 在使用try-catch捕获异常之后,抛出另一个异常

示例

try{
    //...
}catch(ArithmeticException e){
    throw new Exception("计算错误");
}

自定义异常

使用

  • 继承Exception异常类,进行处理

示例

public class MyException extends Exception{
    public MyException(String message){
        super(message);
    }
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇