Python:RuntimeError是否可以接受以供一般使用?

Mar*_*son 15 python exception

是否可以将RuntimeError异常用于一般应用程序?

raise RuntimeError('config file is missing host address')
Run Code Online (Sandbox Code Playgroud)

我有一些像这样的一些一次性情况的代码,并且宁愿避免为每个代码创建一次性异常类.所有情况都是致命的,我的目标是向控制台发出明确的信息.基本上我正在寻找类似于被弃用的东西

raise 'config file is missing host address'
Run Code Online (Sandbox Code Playgroud)

Kev*_*vin 11

还行吧.理想情况下,对于每个合理不同的情况,您有单独的例外(例如,对于所有"配置文件格式错误"错误的一个例外,FileNotFoundError在3.x中重用"配置文件不存在"等).但这是一种比较无害的技术债务形式.

缺点是,如果您确实引入了这些单独的异常,则可能需要为了RuntimeError向后兼容性而进行子类化.这有点难看,但大多无害.

  • @burnpanck:`OSError`及其朋友不是从`RuntimeError`派生的."ValueError","KeyError"等也没有,但这些都是合理可能的运行时错误.RuntimeError在很大程度上是一个"杂项"bin,我不喜欢扩展它. (6认同)
  • 相反,我会说许多异常类无论如何都会合理地从`RuntimeError`派生出来:`RuntimeError`只是意味着一些只能在运​​行时检测到的错误,而不是在设计软件的时候:一个错误的手开发者.这与一个`TypeError`相反,在仔细分析程序流程的情况下,你应该能够看到你实际上使用的是一个不合适的类型. (4认同)
  • @ArtemisFowl:[不要使用bare除了:](https://docs.python.org/2/howto/doanddont.html#except). (3认同)