异常处理

异常处理

一、基本介绍

异常就是程序运行时发生错误的信号(在程序出现错误时,则会产生一个异常,若程序没有处理它,则会抛出该异常,程序的运行也随之终止),在python中,错误触发的异常如下:
千锋云计算杨哥团队

二、异常的种类

# 试图访问一个对象没有的属性,比如foo.x,但是foo没有属性x
AttributeError 

例如:
s = 'lenovo'

print(s.shark)
# 输入/输出异常;基本上是无法打开文件
IOError 

# 无法导入模块或包;基本上是路径问题或名称错误
ImportError 

# 缩进错误) ;代码没有正确对齐
IndentationError 

例如:
if 1 == 1:
print(110)

# 下标索引超出序列边界,比如当 li 只有三个元素,却试图访问 li[5]
IndexError 

例如:
li = [1, 2]
li[10]

# 试图访问字典里不存在的键
KeyError 

例如:
d = {'a': 1}
d['b']

#  按了一下 Ctrl+C
KeyboardInterrupt

# 使用一个还未被赋予对象的变量
NameError 

例如: 
print(n)

# 无效语法,语法错误
SyntaxError 
例如:
if  1 == 1
    print('ok')

三、处理异常的语句

1. 基本语法

try:
    被检测的代码块
except 异常类型:
    try中一旦检测到异常,就执行这个位置的逻辑

示例:

try:
    w = s[8]
except IndexError as e:
    pass
print("程序继续运行")

不用的异常应该使用对其的异常类类型进行捕获。

try:
    w = ss[9]
except IndexError as e:
    print(e)
使用万能异常 Exception
try:
    w = ss[9]
except Exception as e:
    print(e)

四、生产环境如何处理异常

Python程序的traceback信息均来源于一个叫做traceback object的对象,而这个traceback object通常是通过函数sys.exc_info()来获取的

使用 traceback 异常返回信息更加详细,更容易找到问题的根源。

format_exc() 返回字符串类型
import traceback

print('start-->')
try:
    1 + 'a'
except TypeError as e:
    print(e)
    print('*' * 30)
    print(traceback.format_exc())
    print('*' * 20)

print('end')
posted @   Sureing  阅读(257)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示