在不退出程序的情况下引发异常



我在Windows上,使用的是python 3.7.7。我正在努力创造一种高尔夫语言。在这个例子中,如果你提出一个异常(要清除NameError(,如下所示:

raise NameError("Your input was not recognized as a function, variable or  datatype")

然后程序自动退出。当我尝试这个:

print(NameError("Your input was not recognized as a function, variable or  datatype"))

然后它会打印错误,但不是完全打印,也不是像这样用红色显示:Your input was not recognized as a function, variable or datatype

有没有办法让程序不应该退出并打印出真正的错误?

在没有更多详细信息的情况下,您可以尝试以下操作:

try:
raise(NameError("Your input was not recognized as a function, variable or  datatype"))
except Exception as e:
print(repr(e))

然而,这并不是应该使用异常的确切方式。

我很惊讶没有人提到Python termcolor模块。用法非常简单:

from termcolor import colored

Python 2:

print colored('hello', 'red'), colored('world', 'green')

或者在Python 3:中

print(colored('hello', 'red'), colored('world', 'green'))

随着";尝试除";语句,因为毕竟,通过在except子句中添加一些内容,您可以在不退出程序的情况下引发异常。

经过长时间的研究,我找到了答案:这不会引发错误,但会在终端和外壳中打印彩色错误

  1. 使用pip安装CLINT
pip install clint
  1. 在Python中
import sys
try:
sys.stdout.shell.write("Your input was not recognized as a variable, function or datatypen", "COMMENT")
except AttributeError:
puts(colored.red("Your input was not recognized as a variable, function or datatype"))

相关内容

  • 没有找到相关文章

最新更新