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.