如何逃避Trackback或任何类型的错误错误?

时间:2014-02-18 14:46:27

标签: python exception

如何编写关于在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垃圾。

2 个答案:

答案 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文档!