Python入门教程16:错误和异常调试
Python,速成心法
敲代码,查资料,问度娘
练习,探索,总结,优化
1.Python 中常见的异常
Name error 尝试访问一个没有声明的变量引发的错误
Indexerror 索引超出序列范围引发的错误
Indentation error 缩进错误
Value error 传入的值错误
Exception 通用型异常对象
FileNotFoundError 找不到文件
KeyError 键异常
SyntaxError 语法错误
Keyerror 请求一个不存在的字典关键字引发的错误
IOError 输入输出错误(如要读取的文件不存在)
ImportError 当import 语句无法找到模块或from无法在模块中找到相应的名称时引发的错误
Attributeerror 尝试访问未知的对象属性引发的错误
TypeError 类型不合适引发的错误Memoryerror 内存不足Zerodivisionerror 除数为0引发的错误
2.try...except 语句:在Python 中,提供了try..except 语句捕获并处理异常,具体的语法格式如下:
try:
block1
except [ExceptionName [ as alias]]:
block2
参数说明:
☑block 1:表示可能出现错误的代码块。
☑ExceptionName [as alias ]:可选参数,用于指定要捕获的异常。其中,ExceptionName 表示要捕获的异常名称,如果在其右侧加上as alias ,则表示为当前的异常指定一个别名,通过该别名,可以记录异常的具体内容。
3.try...except ...finally 语句:完整的异常处理语句应该包含finally 代码块,其语法格式如下:
try:
block1
except [ExceptionName [ as alias]]:
block2
finally:
block3
对于try..except ..finally 语句的理解并不复杂,它只是比try...except 语句多了一个finally 语句,如果程序中有一些在任何情形中都必须执行的代码,那么就可以将它们放在finally 代码块中。
4.使用raise 语句抛出异常
如果某个函数或方法可能会产生异常,但不想在当前函数或方法中处理这个异常,则可以使用raise 语句在函数或方法中抛出异常。Raise 语句的语法格式如下:
raise [ExceptionName[(reason)]]:
其中,ExceptionName [(reason )]为可选参数,用于指定抛出的异常名称以及异常信息的相关描述。如果省略,就会把当前的错误原样抛出。
5.使用assert 语句调试程序
Python 提供了assert 语句来调试程序,assert 语句的基本语法如下:
assert expression [,reason]
参数说明:
☑expression :条件表达式,如果该表达式的值为真时,什么都不做,如果为假时,则抛出AssertionError 异常。
reason :可选参数,用于对判断条件进行描述,为了以后更好地知道哪里出现了问题。
try:
x = int(input("Enter a number: "))
y = 2 / x
print("Result is:", y)
except ZeroDivisionError as e:
print("Error:", e)
except ValueError as e:
print("Error:", e)
except Exception as e:
print("Error:", e)
else:
print("No error occurred.")
finally:
print("Goodbye!")
下面是一个简单的例子,演示了如何使用 try...except 来捕获和处理异常:
try:
x = int(input("Enter a number: "))
y = 2 / x
print("Result is:", y)
except ZeroDivisionError as e:
print("Error:", e)
except ValueError as e:
print("Error:", e)
except Exception as e:
print("Error:", e)
else:
print("No error occurred.")
finally:
print("Goodbye!")
在这个例子中,我们尝试将一个字符串转换为整数,并计算它除以另一个整数的结果。如果除数为零,程序将引发一个名为 ZeroDivisionError 的异常。我们还定义了两个不同类型的异常:ValueError 和 Exception。如果发生其他类型的异常,我们将捕获它们并打印相应的错误消息。最后,我们使用 else 和 finally 语句来确保在发生任何异常时都会执行相应的处理代码。
完毕!!感谢您的收看
------------往期更多精彩内容------------
-------------------------------------------------
---------------Python源码集合---------------
Python源代码分享:05使用turtle模块绘制一个彩色螺旋图案