首页 / PYTHON / 实现python异常
实现python异常
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了实现python异常,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1489字,纯文字阅读大概需要3分钟。
内容图文
![实现python异常](/upload/InfoBanner/zyjiaocheng/761/b5544f758477429da1a6e14d817797d0.jpg)
我在程序中实现异常系统时遇到一些问题.
我找到了以下代码,我试图用于我的程序:
class InvalidProgramStateException(Exception):
def __init__(self, expr, msg):
self.expr = expr
self.msg = msg
我认为msg必须是要显示的字符串消息,但是当我想要引发此异常时如何填写“expr”?我必须手工编写吗?
raise InvalidProgramStateException(what_here?, "there was an error")
解决方法:
您的自定义异常实际上根本不需要参数.如果您没有任何特定的错误消息或状态要封装在Exception中,这将正常工作:
class MyException(Exception):
pass
这将允许您的程序通过以下类型捕获此异常的情况:
try:
raise MyException()
except MyException:
print "Doing something with MyException"
except:
print "Some other error occurred... handling it differently"
如果您希望Exception具有一些有意义的字符串表示形式,或者具有可以为您的应用程序提供有关错误的更多详细信息的属性,那么当您将其他参数传递给构造函数时.这些参数的数量,名称和类型并不是由Python预先定义的……它们可以是任何东西.请务必提供自定义__str__或__unicode__方法,以便提供有意义的文本描述:
class MyException(Exception):
def __init__(self, msg):
self.msg = msg
def __str__(self):
return "MyException with %s" % self.msg
对于您引用的示例,expr和msg参数特定于示例的虚构大小写.如何使用这些方法的设计方案是:
def do_something(expr):
if 'foo' in expr:
raise InvalidProgramStateException(expr, "We don't allow foos here")
return 5
user_input = 'foo bar'
try:
do_something(user_input)
except InvalidProgramStateException, e:
print "%s (using expression %s)" % (e.msg, e.expr)
由于您的应用程序似乎不需要它,因此只需删除不需要的参数即可.
内容总结
以上是互联网集市为您收集整理的实现python异常全部内容,希望文章能够帮你解决实现python异常所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。