Python-异常处理
时间:2020-02-23 14:42:41 来源:igfitidea点击:
在本教程中,我们将学习Python中的异常处理。
什么是异常?
异常是中断给定程序正常执行的事件。
在Python中,异常是表示错误的对象。
当我们的Python程序引发异常时,必须立即对其进行处理,否则它将终止程序的执行。
处理异常
我们使用try和except块来处理Python中的异常。
try代码块
如果我们认为有一段代码可能会引发错误,则可以将该代码放入" try"块中。
语法:
try: # # some code goes here... #
except块
我们使用except块来处理try块内的代码段引发的异常。
语法:
try: # # some code goes here... # except: # # some error handling code goes here... #
一个try块可以引发多种类型的异常,因此我们可以在给定的try块上附加多个except。
语法:
try: # # some code goes here... # except Exception1: # # some error handling code goes here... # except Exception2: # # some error handling code goes here... #
else块
如果没有出现错误,else块将保留一段代码。
语法:
try: # # some code goes here... # except: # # some error handling code goes here... # else: # # some code goes here... #
finally块
无论try-except块如何,我们都使用" finally"块放置要执行的代码。
" finally"块是释放诸如关闭文件或者关闭数据库连接之类的资源的好地方。
语法:
try: # # some code goes here... # except: # # some error handling code goes here... # finally: # # some code goes here... #
例子1
在下面的Python程序中,我们尝试使用open函数创建一个新文件。
如果文件存在,则将引发错误,我们将使用try-except块进行处理。
try:
# create new file
fobj = open("sample.txt", "x")
print("File created!")
except:
print("Failed to create file.")
第一次运行上面的代码,我们将获得"文件已创建!"作为输出。
如果我们第二次再次运行代码,由于文件已经存在,将引发错误,并且输出将为"无法创建文件。
"。
例子2
在下面的Python程序中,我们使用try-except-else块。
try:
# create new file
fobj = open("sample.txt", "w")
print("File opened in write mode.")
except:
print("Failed to create file.")
else:
fobj.close()
print("File closed.")
如果执行上面的代码,我们将得到以下输出。
File opened in write mode. File closed.
例子3
在下面的Python程序中,我们使用try-except-finally块。
try:
# create new file
fobj = open("sample.txt", "w")
print("File opened in write mode.")
except:
print("Failed to create file.")
finally:
fobj.close()
print("File closed.")
如果执行上面的代码,我们将得到以下输出。
File opened in write mode. File closed.
例子4
在下面的Python程序中,我们接受用户输入并将其划分。
try:
# take user input
x = input("Enter 1st number x:")
y = input("Enter 2nd number y:")
# convert to number and divide
result = float(x)/float(y)
# output
print("x/y =", result)
except ZeroDivisionError:
# this handles specific error
# if y is 0 then this message is prompted
print("Can't divide by zero.")
except:
# this handles generalised error
print("An error occurred.")
以下是上述代码的一些输出。
输出#1
Enter 1st number x:10 Enter 2nd number y:20 x/y = 0.5
输出#2
Enter 1st number x:10 Enter 2nd number y:unknown An error occurred.
输出#3
Enter 1st number x:10 Enter 2nd number y:0 Can't divide by zero.

