Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python查找异常消息(使用ast?)_Python - Fatal编程技术网

python查找异常消息(使用ast?)

python查找异常消息(使用ast?),python,Python,我想编译一个列表,列出我的程序可以向用户显示的所有消息,特别是所有错误(以便能够对措辞进行质量检查)。 假设我有自己的异常类 class MyException( Exception ): pass 我希望以编程方式找到我 raise MyException( "This is a baadly worded message with typo." ) 是否有一种优雅的python检索方法: 信息 行号 引发异常的(成员)函数名 理想情况下,它甚至可以处理以下情况 msg = "

我想编译一个列表,列出我的程序可以向用户显示的所有消息,特别是所有错误(以便能够对措辞进行质量检查)。 假设我有自己的异常类

class MyException( Exception ):
    pass
我希望以编程方式找到我

raise MyException( "This is a baadly worded message with typo." )
是否有一种优雅的python检索方法:

  • 信息
  • 行号
  • 引发异常的(成员)函数名
理想情况下,它甚至可以处理以下情况

msg = "My really long error message\n"
msg += "Where I explain too much to fit it directly into the raise call"
raise MyException( msg )

因此,您希望本地化Python应用程序


在本例中,有一个非常强大的本地化框架,它被大多数开源项目使用,而不仅仅是Python项目。

因此您希望本地化Python应用程序


在这种情况下,抢夺as是一个非常强大的本地化框架,大多数开源项目都使用它,不仅仅是Python的。第二种情况完全解决了,因为为了找出结果,您必须执行程序。因此,您希望跟踪自定义异常?可能有两种解决方案:
inspect
+
grep
,和
compile
+
grep
gettext
命令行工具可以提取作为参数传递给gettext函数的所有字符串文本,这有点类似,因为它是开源的,您可以检查它们是如何做的。它只适用于
(“str”)
gettext(“str”)
,但也许您可以修改它以查找
MyException
@cat我真的不明白您的意思-inspect(stdlib包)可以帮我怎么做?否则,字节编译在什么方面会有帮助?第二种情况完全解决了,因为为了计算出结果,您必须执行程序。因此,您希望在自定义异常的同时进行回溯?可能有两种解决方案:
inspect
+
grep
,和
compile
+
grep
gettext
命令行工具可以提取作为参数传递给gettext函数的所有字符串文本,这有点类似,因为它是开源的,您可以检查它们是如何做的。它只适用于
(“str”)
gettext(“str”)
,但也许您可以修改它以查找
MyException
@cat我真的不明白您的意思-inspect(stdlib包)可以帮我怎么做?否则,字节编译在什么方面会有帮助?这并不是我想要的,但它似乎是最适合这个问题的开箱即用方法。还要特别感谢Andrey,他在问题的评论中提出了这个建议。感谢TimO,打赌gettext toolstack I是一个安全的赌注。我在做i18n和l10n的工作上有好几年的时间,gettext是我最喜欢的。这并不是我想的,但它似乎是最适合这个问题的开箱即用的。还要特别感谢Andrey,他在问题的评论中提出了这个建议。感谢TimO,打赌gettext toolstack I是一个安全的赌注。我在做i18n和l10n的工作上有好几年的时间,gettext是我最喜欢的。