try catch 异常分类

本文深入探讨了Java中常见的异常类型,包括算数错误、数组下标越界、空指针异常等,详细解析了每种异常的发生场景及应对策略。

Exception                                                   异常层次结构跟类

ArithmeticException                                   算数错误情形

ArrayIndexOutOfBoundsException            数组下标越界

NullpointerException                                  尝试访问null对象成员

ClassNotFoundException                          不能加载所需的类

InputMismatchException                            欲得到的数据类型与实际输入的类型不匹配

IllegaArgumentException                            方法接受到非法参数

ClassCastException                                    对象强制类型转换出错

NumberFormatException                             数字格式转换异常

### Python 中 `try` 和 `except` 的基本概念 在编程过程中,错误和异常是不可避免的一部分。为了使程序更加健壮并能优雅地处理这些意外情况,在 Python 中提供了 `try...except` 结构来进行异常管理[^1]。 当一段可能引发异常的代码被执行时,可以将其放在 `try` 块内;而对应的错误处理逻辑则放置于一个或多个跟随其后的 `except` 子句之中。如果发生了一个特定类型的异常,并且此类型匹配某个 `except` 后面所跟的具体类,则会执行相应的处理流程[^2]。 ### 处理单个异常的例子 下面是一个简单的例子展示了如何利用 `try...except` 来捕获除零错: ```python def divide_numbers(a, b): try: result = a / b except ZeroDivisionError as e: print(f"无法完成操作:{e}") return None return result ``` 在这个函数中,尝试计算两个数值相除的结果。然而,如果第二个参数为零就会触发 `ZeroDivisionError` 异常。此时控制流转向最近一层未被其他 `except` 捕捉到相同种类异常的分支——这里就是针对该种情形定义好的部分[^3]。 ### 捕获多种不同类型异常的方法 有时可能会遇到不止一种潜在的问题源,因此可以在同一个 `try` 下编写多条 `except` 语句来分别应对各种可能出现的情况: ```python def read_file(filename): try: with open(filename, 'r') as file: content = file.read() except FileNotFoundError: print("文件不存在") except PermissionError: print("权限不足") except Exception as ex: # 抓住所有其它未知异常 print(f"发生了意料之外的事情:{ex}") else: print(content) finally: print("无论成功与否都会执行这行代码.") ``` 上述示例不仅能够区分具体原因导致的操作失败(比如找不到目标文档或是访问受限),还通过最后一个通用型别的 `except` 实现了兜底保护机制以防漏网之鱼。另外值得注意的是存在可选的关键字 `else` 及 `finally` :前者会在没有任何异常抛出的情况下才得以运行;后者不管怎样都将得到执行的机会。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值