本文概述
- 语法错误和异常之间的区别
- 尝试并在异常处理中除外
- 引发异常
语法错误和异常之间的区别 语法错误:顾名思义, 此错误是由代码中的错误语法引起的。它导致程序终止。
例子
# initialize the amount variable
amount = 10000# check that You are eligible to
#purchase Dsa Self Paced or not
if (amount>
2999 )
print ( "You are eligible to purchase Dsa Self Paced" )
输出如下:
文章图片
例外情况:如果程序在语法上正确, 但是代码导致错误, 则会引发异常。该错误不会停止程序的执行, 但是会改变程序的正常流程。
例子:
# initialize the amount variable
marks = 10000# perform division with 0
a = marks / 0
print (a)
输出如下:
文章图片
在上面的示例中, 我们尝试将数字除以0时引发了ZeroDivisionError。
注意:
【Python如何处理异常和错误()】Exception是Python中所有异常的基类。你可以检查异常层次结构
这里
.
尝试并在异常处理中除外 让我们尝试访问索引超出范围的数组元素并处理相应的异常。
# Python program to handle simple runtime errora = [ 1 , 2 , 3 ]
try :
print "Second element = %d" % (a[ 1 ])# Throws error since there are only 3 elements in array
print "Fourth element = %d" % (a[ 3 ]) except IndexError:
print "An error occurred"
输出如下:
Second element = 2
An error occurred
一个try语句可以具有一个以上的except子句, 以指定不同异常的处理程序。请注意, 最多将执行一个处理程序。
# Program to handle multiple errors with one except statement
try :
a = 3
if a <
4 :# throws ZeroDivisionError for a = 3
b = a / (a - 3 )# throws NameError if a >
= 4
print "Value of b = " , b# note that braces () are necessary here for multiple exceptions
except (ZeroDivisionError, NameError):
print "\nError Occurred and Handled"
输出如下:
Error Occurred and Handled
如果将" a"的值更改为大于或等于4, 则输出为
Value of b =
Error Occurred and Handled
上面的输出是这样的, 因为python一旦尝试访问b的值, 就会发生NameError。
其他语句
在python中, 你还可以在尝试除外必须在所有except子句之后出现的block。仅当try子句未引发异常时, 代码才进入else块。
# Program to depict else clause with try-except# Function which returns a/b
def AbyB(a , b):
try :
c = ((a + b) / (a - b))
except ZeroDivisionError:
print "a/b result in 0"
else :
print c# Driver program to test above function
AbyB( 2.0 , 3.0 )
AbyB( 3.0 , 3.0 )
上面程序的输出将是:
-5.0
a/b result in 0
Python的最终关键字
Python提供了一个关键字最后, 它总是在try和except块之后执行。在try块正常终止后或由于某些异常try块终止后, finally块始终执行。
语法如下:
try:
# Some Code.... except:
# optional block
# Handling of exception (if required)else:
# execute if no exceptionfinally:
# Some code .....(always executed)
例子:
# Python program to demonstrate finally # No exception Exception raised in try block
try :
k = 5 / / 0 # raises divide by zero exception.
print (k) # handles zerodivision exception
except ZeroDivisionError:
print ( "Can't divide by zero" ) finally :
# this block is always executed
# regardless of exception generation.
print ( 'This is always executed' )
输出如下:
Can't divide by zero
This is always executed
引发异常 引发语句使程序员可以强制发生特定的异常。在raise中唯一的参数表示要引发的异常。这必须是异常实例或异常类(从Exception派生的类)。
# Program to depict Raising Exceptiontry :
raise NameError( "Hi there" )# Raise Error
except NameError:
print "An exception"
raise# To determine whether the exception was raised or not
上面代码的输出将简单地打印为"异常", 但由于最后一行中的raise语句, 最后也会发生运行时错误。因此, 命令行上的输出将如下所示
Traceback (most recent call last):
File "003dff3d748c75816b7f849be98b91b8.py", line 4, in
raise NameError("Hi there") # Raise Error
NameError: Hi there
本文作者:
尼克·库玛·辛格(Nikhil Kumar Singh)
(nickzuck_007)
如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请发表评论。
注意怪胎!巩固你的基础Python编程基础课程和学习基础知识。
首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。
推荐阅读
- 如何理解Java主线程(详细指南)
- 0x00000019,本文教您怎样处理0x00000019
- 铭瑄u盘打开,本文教您铭瑄主板bios怎样设置u盘打开
- 映泰主板bios设置,本文教您映泰主板bios怎样设置u盘打开
- bios,本文教您联想电脑bios怎样设置u盘打开
- 安装系统 怎样用u盘重装系统,本文教您怎样用u盘重装Win8系统
- 进入bios,本文教您戴尔笔记本进入bios设置u盘打开
- bios,本文教您3星电脑bios怎样设置u盘打开
- 电脑怎样进入bios,本文教您惠普电脑怎样进入bios