美文网首页Java练级
Java异常处理学习笔记

Java异常处理学习笔记

作者: 拜仁的月饼 | 来源:发表于2019-11-28 17:37 被阅读0次

2019.11.28记,by月饼。

暂时不是重点

传统语言(比如C语言等)需要用if语句来判断是否出现例外。但在Java中:

  • throw异常
  • 运行时系统在调用栈中查找
  • 捕获(catch)异常代码

语句:

抛出异常

throw 异常对象

捕获异常

try{
    // fields;
}cache(异常类名 异常形式参数名){
    // 异常处理语句组
}...

{}finally{
    // 异常处理语句组
}

其中,catch可以0到多个语句;finally可有可无。

1. Exception

构造方法

// 方法一:无参数
public Exception();

// 方法二:带异常信息
public Exception(String message);

// 方法三:信息+原因
public Exception(String message, Throwable cause);

常用方法:

getMessage();
getCause();
printStackTrace();

2. 多异常处理

要求:子类异常要在父类异常之前

finally语句:无论有无异常都会执行!

3. 受检异常

在Java中,Exception分两种:

  • RuntimeException(运行时异常)及其子类,可以不明确处理;
  • 否则称为受检异常(checked Exception)。受检异常是要明确处理的,要么捕获,要么抛出。

受检异常处理方法:

  • catch
  • throws:在方法签名后面加throws XXXX声明

注:在子类中,如要覆盖父类的一个方法,若父类中的方法声明了throws异常,则子类的方法也可以throws异常。

4. 自定义异常类

定义方法:

  • 继承自Exception类或某个子Exception类
  • 定义属性和方法或重载父类的方法

重抛异常及异常链接的方法:

  • 将当前捕获的异常再次抛出:throw e
  • 重新生成一个异常并抛出:throw new Exception("some message");
  • 重新生成并抛出一个新异常,该异常包含了当前异常的信息,如:
    • throw new Exception("some message", e);
    • 可用e.getCause()来得到内部异常

5. 断言(assertion)

这是自JDK 1.4起增加的功能。

格式:

  • assert
  • assert : info

JUnit测试:如何在IntelliJ idea中用?

6. 程序调试

一般来说,程序中的错误通常可以分三大类:

  • 语法错误(Syntex Error)
  • 运行错误(Rumtime Error)
  • 逻辑错误(Logic Error): debugunit test

Debug: 用IDE就能做,idea做的挺好的。

相关文章

网友评论

    本文标题:Java异常处理学习笔记

    本文链接:https://www.haomeiwen.com/subject/enaxwctx.html