2024-05-16 19:12:03 发布
网友
我目前正在学习由Mark Lutz和David Ascher编写的Python,我遇到了一段不断出现错误的代码。我知道这本书是用Python 2编写的,与我使用的Pyhton 3不同。我想知道是否有人知道我的问题的解决办法,因为我到处找,但我一直找不到解决办法。
。。。。。。。。。。。。。。。。。。。。。。。。。
MyBad = 'oops' def stuff( ): raise MyBad try: stuff( ) except MyBad: print('got it')
如果不创建类(至少为空类),则无法引发自定义异常。
也可以使用一个初始化函数而不是pass来添加自定义文本:
class MyBad(Exception): pass # def __init__(self, txt): # print(txt) def stuff( ): raise MyBad('test') try: stuff( ) except MyBad: print('got it')
如果您使用通行证,您将拥有:
got it
如果您在comment中使用了
test and got it
基本上,MyBad不是异常,并且raise语句只能与异常一起使用。
MyBad
raise
要使MyBad成为异常,必须使它扩展Exception的子类。例如,以下操作将起作用:
Exception
class MyBad(Exception): pass def stuff( ): raise MyBad try: stuff( ) except MyBad: print('got it')
输出:
但是,最好是引发异常类的实例,而不是类本身,因为它允许使用参数,通常用于描述错误。以下示例说明了这一点:
class MyBad(Exception): def __init__(self, message): super().__init__() self.message = message def stuff(message): raise MyBad(message) try: stuff("Your bad") except MyBad as error: print('got it (message: {})'.format(error.message))
got it (Your bad)
如果不创建类(至少为空类),则无法引发自定义异常。
也可以使用一个初始化函数而不是pass来添加自定义文本:
如果您使用通行证,您将拥有:
如果您在comment中使用了
基本上,
MyBad
不是异常,并且raise
语句只能与异常一起使用。要使
MyBad
成为异常,必须使它扩展Exception
的子类。例如,以下操作将起作用:输出:
但是,最好是引发异常类的实例,而不是类本身,因为它允许使用参数,通常用于描述错误。以下示例说明了这一点:
输出:
相关问题 更多 >
编程相关推荐