【问题标题】:catching errors and exiting捕获错误并退出
【发布时间】:2011-12-03 21:21:43
【问题描述】:

在python中,有没有办法在测试条件后退出类,而不退出python?

说我有课

class test():
     def __init__(self):
         self.a = 2

     def create_b(self):
         self.b = 3

     def does_b_exist(self):
         if <self.b doesnt exist>:
             #terminate

         self.b += 1

try/except` 不起作用,因为程序的其余部分在失败后不会终止。我基本上是在尝试捕获错误,并在显示错误时执行 python 的操作,但我不知道该怎么做

【问题讨论】:

  • 所以您希望整个程序在“#terminate”行结束?这将是 sys.exit() 的工作,但如果这不是您想要的,请参阅我的回答。更好的描述会有所帮助;)
  • 您可以使用return退出does_b_exist()方法。
  • “退出类”的概念没有任何意义。首先,你不在课堂上;你正在运行一个对象的方法。
  • 我认为您想要做的是 raise 一个异常,它将控制权传递给调用者设置的 try/except 处理程序(例如,打印错误消息),或者终止如果没有处理程序,则程序。

标签: python error-handling terminate terminate-handler


【解决方案1】:

您可能想要运行“python -i”,它会在程序执行后将您带到交互式控制台,运行 sys.exit(),它会终止程序,或者您(可能)想要自定义 sys.excepthook。更详细地描述你想要的行为,我们可以给你一些代码来尝试。

【讨论】:

  • 是哪个选项? :)
【解决方案2】:

quit() 是一个不错的选择。它将退出该过程,但请确保在此之前进行清理。您可以考虑抛出一个未捕获的异常并使用 finally 语句作为您的脚本干净地中止。

【讨论】:

  • 什么?一个类当然是可调用的。调用它会构造一个实例。 :)
猜你喜欢
  • 2018-07-10
  • 2014-12-22
  • 2013-03-23
  • 2023-03-28
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
  • 2021-06-01
相关资源
最近更新 更多