Python eval()异常处理在一行中

时间:2013-07-25 11:44:43

标签: python try-catch eval

我在python中编写一个IRC bot。所有代码都在一行中。我知道这不是python程序应该如何编写的,但这是实验性的。我想从IRC执行oneliner脚本,但我不知道如何处理异常。

是否可以评估python表达式并在一行中处理可能的异常? AFAIK try-except不能在一行中使用。

以下是当前代码:http://pastebin.com/f34brq91。 这不是很容易阅读,但没有必要理解它来回答我的问题。 :)

1 个答案:

答案 0 :(得分:1)

不,没有办法将异常处理程序放在一行中。您只能在一行上添加简单语句,try - except是复合语句。

也没有任何功能可以让你吞下例外。

你能够在一行中拉出这样的东西的唯一方法是从原始字节创建一个新的代码对象,定义一个毯子try - except: pass构造的字节码。然后使用该字节码继续创建一个吞下异常的函数。

但是,我不会为你写一个。遗憾。