学习笔记之《Java核心技术卷I》---- 第七章 异常、断言和日志

本文深入探讨Java异常处理机制,区分受查与非受查异常,解析throw与throws关键字使用,展示try-catch-finally代码块运行流程,以及带资源try语句的运用,通过实例演示finally如何覆盖try中的返回值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 异常对象都是派生与Throwable的一个实例
  • 派生于Error类或RuntimeException类的所有异常称为非受查异常,所有其他异常称为受查异常
  • 一个方法必须声明所有可能抛出的受查异常,而非受查异常要么不可控制,要么就应该避免发生
  • 关键字throws位于方法之后,声明该方法可能抛出异常;throw 关键字对位于方法之内,意为抛出异常
  • 所有派生的异常类都支持一个默认的构造器和一个带有详细描述信息的构造器
  • 不允许在子类的throws说明符中出现超过超类方法所列出的异常类范围
  • try{ }catch{ }finally{ }代码块运行步骤
  • try{ try{ } finally{ } }catch{ }
  • 在try{ }finally{ }中,若finally块和try块中都含有return语句,那么finally的return会覆盖try中的return。代码如下:
public static void main(String[] args) {
		System.out.println(f(2));//2
	}
	public static int f(int x) {
		try {
			return x * x;
		} finally {
			return x;
		}
	}
}
  • 带资源的try语句:不论这个块如何退出,在try中打开的资源都会关闭
try(Scanner in = new Scanner(new FileInputStream("./test.txt"));//可以写多个资源,每个资源用分号隔开
	PrintWriter out = new PrintWriter("out.txt")){
	while (in.hasNextLine()) {
	    out.println(in.nextLine());
}
  • 早抛出,晚捕获
  • 日志:过
  •  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值