本文介绍了在python中使用默认消息提高内置异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图实现一个方法,只要某个目录不存在就返回一个错误。



而不是使用引发OSError(目录不存在),但是,我想使用来自OSError的内置错误消息: OSError:[Errno 2]没有这样的文件或目录:。这是因为我在方法调用开始时引发异常,而不是稍后(从python调用相同的消息,没有必要的 raise )。 p>

任何指针? (除了手动执行 OSError([Errno 2]没有这样的文件或目录:)

解决方案
  import os 

try:
open('foo')
除了IOError作为err:
print(err)
print(err.args)
print(err.filename)

生成

  [Errno 2]没有这样的文件或目录:'foo'
(2 ,没有这样的文件或目录)
foo

所以,要生成一个OSError一个类似的消息使用

 提高OSError(2,'没有这样的文件或目录','foo')


I'm trying to implement a method that returns an error whenever a certain directory does not exist.

Rather than doing raise OSError("Directory does not exist."), however, I want to use the builtint error message from OSError: OSError: [Errno 2] No such file or directory:. This is because I am raising the exception in the beginning of the method call, rather than later (which would invoke the same message from python, without any necessary raise).

Any pointers? (other than manually doing OSError("[Errno 2] No such file or directory: "))

解决方案
import os

try:
    open('foo')
except IOError as err:
    print(err)
    print(err.args)
    print(err.filename)    

produces

[Errno 2] No such file or directory: 'foo'
(2, 'No such file or directory')
foo

So, to generate an OSError with a similar message use

raise OSError(2, 'No such file or directory', 'foo')

这篇关于在python中使用默认消息提高内置异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-27 02:38