2K+ 次浏览
如果我们定义一个没有异常的 except 子句,它可以处理所有类型的异常。但是,这既不是好的编码习惯,也不推荐这样做。示例:try: print 'foo'+'qux'+ 7 except: print' 出现错误' 输出:您将得到输出“出现错误”。这种类型的 Python try-except 块可以处理所有类型的异常,但这对于程序员查找发生哪种类型的异常并没有帮助。
522 次浏览
这可以通过以下代码实现:try: x, y =7, 0 z = x/y except: pass 或 try: x, y =7, 0 z = x/y except Exception: pass 这些代码绕过 try 语句中的异常并忽略 except 子句,并且不会引发任何异常。上述代码的区别在于,第一个代码还会捕获 KeyboardInterrupt、SystemExit 等,这些异常直接派生自 BaseException,而不是 exceptions.Exception。众所周知,Python 会记住最后抛出的异常,一些参与异常抛出语句的对象会在下一个异常发生之前保持活动状态。我们可能想要做…… 阅读更多
3K+ 次浏览
可以使用相同的 except 子句定义多个异常。这意味着如果 Python 解释器找到匹配的异常,则它将执行 except 子句下编写的代码。通常,多个异常的语法如下:Except(Exception1, Exception2, …ExceptionN) as e: 当我们以这种方式定义 except 子句时,我们期望相同的代码抛出不同的异常。此外,我们希望在每种情况下都采取行动。示例代码:import sys try: d = 8 d = d + '5' except(TypeError, SyntaxError)as e: print sys.exc_info() 我们得到的输出如下所示:(, TypeError("unsupported operand type(s) for +: 'int' and 'str'", ), ... 阅读更多
1K+ 次浏览
在这里,我们将变量传递给给定的异常。我们正在定义一个自定义异常 ExampleException,它是基类 Exception 的子类,还定义了 __init__ 方法。我们使用 try-except 块来引发异常并将变量传递给异常,如下所示。示例:class ExampleException(Exception): def __init__(self, foo): self.foo = foo try: raise ExampleException("Bar!") except ExampleException as e: print e.foo 输出:"C:/Users/TutorialsPoint1/~bar.py" Bar!
235 次浏览
在给定的代码中,创建了一个自定义异常 FooException,它是超类 Exception 的子类。我们将字符串对象传递给自定义异常,如下所示:示例 #foobar.py class FooException(Exception): def __init__(self, text, *args): super ( FooException, self ).__init__ ( text, *args ) self.text = text try: bar = input("输入一个字符串:") if not isinstance(bar, basestring): raise FooException(bar) except FooException as r: print '出现错误' else: print type(bar) print bar 如果此脚本在终端中运行如下所示,我们将得到:$ python foobar.py 如果我们输入一个字符串,我们将得到以下结果:输出:"C:/Users/TutorialsPoint1/~foobar.py" 输入…… 阅读更多
557 次浏览
当 Python 无法理解你的意思时,就会发生语法错误。当 Python 理解你的意思,但在遵循你的指令时遇到问题时,就会发生运行时错误。这称为运行时错误,因为它发生在程序开始运行之后。程序或代码在语法上可能是正确的,并且可能不会引发任何语法错误。这段代码在开始运行后仍然可能显示错误。给定的代码可以按如下方式更正:a = input('输入一个数字:') b = input('输入一个数字:') c = a*b print c 我们得到的输出如下所示:"C:/Users/TutorialsPoint1/~.py" 输入一个数字:7 输入…… 阅读更多
352 次浏览
我们如下所示在一个 except 块中捕获多个异常:一个 except 子句可以将多个异常命名为带括号的元组,例如:try: raise_certain_errors(): except (CertainError1, CertainError2, …) as e: handle_error() 用逗号将异常与变量分开在 Python 2.6 和 2.7 中仍然有效,但现在已弃用,在 Python 3 中不起作用;现在我们应该使用“as”。括号是必要的,因为逗号用于将错误对象分配给名称。“as”关键字用于赋值。我们可以为错误对象使用任何名称,例如“error”、“e”或“err”。给定的代码可以…… 阅读更多
405 次浏览
子字符串是字符串中连续的字符序列。换句话说,它是出现在较大文本块内的小文本块。例如,在字符串“lorem ipsum”中,子字符串“lorem”出现在较大的字符串中。同样,子字符串“em i”也出现在较大的字符串“lorem ipsum”中。子字符串操作在编程中很常见,可用于各种任务,例如搜索文本中的特定单词、提取文本部分或将文本的某些部分替换为其他单词。检查子字符串是否…… 阅读更多
808 次浏览
当找不到值作为字典的键时,会引发 KeyError。给定的代码被改写如下,以捕获异常并找到其类型。示例:import sys try: s = {'a':5, 'b':7}['c'] except: print (sys.exc_info()) 输出:(, KeyError('c',), )
234 次浏览
assert 语句具有以下语法。assert 上面的行读取为:如果计算结果为 False,则会引发异常并输出。如果我们想要测试一些代码块或表达式,我们将其放在 assert 关键字之后。如果测试通过或表达式的计算结果为真,则不会发生任何事情。但是,如果测试失败或表达式的计算结果为假,则会引发 AssertionError,并打印或计算消息。Assert 语句用于捕获/测试用户定义的约束。它用于调试代码,并插入到…… 阅读更多