52、异常处理全解析:从基础到自定义异常类

异常处理全解析:从基础到自定义异常类

1. finally 块的使用

在异常处理中,异常会中断 try 块的执行,也不会直接触发 catch 块。虽然我们常常可以避免使用 finally 块,但这会导致代码重复。例如,若不使用 finally 块,我们需要在 try 块的最后和 catch 块倒数第二条语句(程序退出前)都插入 “If the file is open, close it” 语句。而在 finally 块中只写一次代码,会使代码更清晰,也更不容易出错。

很多设计良好的程序在尝试执行代码时,并不包含 catch 块,而是仅使用 try - finally 对。finally 块通常用于释放其他应用程序可能正在等待的资源,如数据库连接。

以下是一个 “Two Truths & A Lie” 的判断:
|序号|描述|真假|
|----|----|----|
|1|当 finally 块跟随 try 块时,无论 try 块是否识别出异常,它都会执行。|真|
|2|通常,你使用 finally 块来执行在异常被抛出和捕获后必须发生的清理任务。|假|
|3|try…catch 对后面的语句可能永远不会执行,因为可能会出现意外的异常,或者 try 或 catch 块中可能包含退出应用程序的语句。|真|

2. 处理外部方法抛出的异常

使用面向对象的异常处理技术的一个优势是,当其他类的方法抛出异常时,这些方法不必捕获它们,调用程序可以捕获并决定如何处理。

例如,当我们提示用户在控制台输入一个值,并使用 Convert.ToInt32()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值