您当前的位置: 首页 > 

liaowenxiong

暂无认证

  • 0浏览

    0关注

    1171博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

异常(Exception)的学习

liaowenxiong 发布时间:2021-11-15 16:44:47 ,浏览量:0

1.Throwsable 的两个子类 Exception 和 Error

2.Exception 这是编译期异常,可以捕获处理

3.RuntimeException 表示运行期间的异常,它是 Exception 的子类

4.Error 这是程序错误,不可捕获处理。例如,内存溢出

5.throws 关键字,用于声明可能抛出编译异常,让调用者处理异常。抛出的如果是运行时异常,则可以不声明。方法内使用 throw 关键字抛出编译时异常,就必须使用关键字 throws 在方法签名处声明可能抛出的异常

6.如果异常抛给 JVM 处理,JVM 会打印异常信息,然后直接停止程序

7.使用 try…catch 捕获异常,后面的程序照常执行

运行期异常: NullPointerException ArrayIndexOutOfBoundsException,继承自 IndexOutOfBoundsException

编译期异常: FileNotFoundException,它继承自 IOException IOException,它继承自 Exception

自定义异常类: 继承自 Exception,是编译时异常 继承自 RuntimeException,是运行时异常,无需处理

代码示例:

public class Demo01Exception {
    public static void main(String[] args) {
        try {
            readFile("/users/home/test.txt");
            System.out.println(8888); // 捕获到异常,此行代码不会执行
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            System.out.println(5555); // 有没有异常,此行代码都会执行
        }

        System.out.println(9999); // 有没有异常,此行代码都会执行
    }

    static void readFile(String path) throws IOException {
        if (!path.endsWith(".txt")) {
            throw new IOException("文件格式不对");
        }

        System.out.println(7777); // 抛出异常,此行代码不会执行
    }

public boolean findUserByAccountName(String accountName) {

	try {
			return true;
		} catch (Exception e) {
			e.printStackTrace();
		} finally {	
		// 上面return后,这行代码也会执行,也就是说return后,方法并没有立刻结束执行,而是会继续找寻是否存在finally块,存在则执行内部的代码,执行完后方法才结束执行,并将结果值返回给调用处
			System.out.println("关闭资源!");
		}
	return false;
}

}

关注
打赏
1661566967
查看更多评论
立即登录/注册

微信扫码登录

0.0474s