try-except代码块的作用就是当try代码块中的程序代码运行没有错误,则跳过except代码块;反之如果try代码块中的程序代码运行出现错误,则运行except代码块中的内容,一般except代码块中的内容都是输出错误信息。
try:
print(2/0)
except:
print("We can't divide by zero!")
我们一般使用try-except代码块处理异常,try-except代码块让 Python 程序在遇到错误时执行指定的操作,而不是产生t\fraceback。
通过raise显式抛出异常信息
除了系统自动抛出异常外,程序员也可以通过 Python 的raise显式抛出自己的包含特定信息的异常。一旦执行了raise语句,raise之后的语句将不能执行。
def read_C():
try:
C = float(sys.argv[1])
except ValueError:
raise ValueError(‘Degrees must be number, not “%s”’ % sys.argv[1])
if C < -273.15:
raise ValueError(‘C=%g is a non-physical value!’ % C)
return C
在raise关键字之后抛出一个ValueError类型的异常信息,并在后面的参数中定义具体的异常信息。
else代码块
可以在try-except代码块后面添加try代码块,当try代码块中的程序运行没有异常时,程序将运行else代码块中的内容,例如:
a = int(input())
b = int(input())
try:
answer = a/b
except:
print(“We can’t divide by zero!”)
else:
print(answer)
编程要求``
本关的编程任务是补全 src/Step3/test3.py 文件的代码,实现相应的功能。具体要求如下:
补充代码,体会 try-except-else 代码块编程过程;
要求:对输入的整数进行平方根运算,如果输入的整数是负数,则在except代码块中中输出We can’t take a root by minus ;如果输入的是正数,则正常输出平方根值。
#coding=utf-8
import math
#输入整数a
a = int(input())
try:
answer = math.sqrt(a)
# 请在此添加代码,实现编程要求
#********** Begin *********#
except:
print("We can't take a root by minus")
else:
print(answer)
#********** End **********#