如何编写关于在python中转义ERROR的正确语句...假设
实施例
import base64
encode = base64.b64encode(raw_input('Enter Data: '))
data = base64.b64decode(encode)
print 'Your Encoded Message is: ' + encode
print '.'
print '.'
print '.'
print '.'
print '.'
decode = base64.b64decode(raw_input('Enter Encoded Data: '))
data2 = base64.b64decode(encode)
print 'Your Encoded Message is: ' + decode
现在,这个脚本只对Encode和Decode原始数据进行了编码。将普通原始数据输入'Enter Encoded Data: '
时出错
我怎么想逃避错误就像对不起!您放置的数据将被编码。
而不是Trackback垃圾。
答案 0 :(得分:1)
您正在寻找的是try-except:声明
decode = None
while not decode:
try:
decode = base64.b64decode(raw_input('Enter Encoded Data: '))
data2 = base64.b64decode(encode)
except:
print 'Sorry! the Data you Have put is to be Encoded.'
print 'Your Encoded Message is: ' + decode
答案 1 :(得分:1)
当您收到错误时,通常某些功能(例如base64.b64decode
)会引发Exception
。您可以通过将可能在try
- except
块中创建它们的过程包装起来来“捕获”异常,如下所示:
try:
# Stuff that might raise an Exception goes in here
decode = base64.b64decode(raw_input('Enter Encoded Data: '))
except Exception as e:
# Execute this block if an Exception is raised in the try block.
print('Sorry! The input data must be encoded!')
如果您确切知道您所获得的Exception
种类(错误消息会告诉您),您应该在except
中指定完全例外阻止,这样你就不会accidentally hide other kinds of errors。例如,base64.b64decode
通常会在收到不正确的输入时引发binascii.Error
,因此您可以except
明确指出该错误。这样,如果出现不同的错误,你会注意到它!
import binascii
try:
decode = base64.b64decode(raw_input('Enter Encoded Data: '))
except binascii.Error as e:
print('Sorry! The input data must be b64 encoded!')
正如您已经发现的那样,异常处理确实是良好编码实践的重要组成部分,因此请务必查看上面链接中的Python文档!