Exception Python3异常处理
我正在尝试使用异常处理制作一个简单的程序(用于学习目的)。 我想做的是:Exception Python3异常处理,exception,python-3.x,exception-handling,Exception,Python 3.x,Exception Handling,我正在尝试使用异常处理制作一个简单的程序(用于学习目的)。 我想做的是: try: x = int(input()) except ValueError as var: # HERE I WANT TO USE THE 'x' STRING VALUE 我知道使用异常消息的各种方法(例如使用str(var)) 例如,如果输入是bla,这将导致ValueError异常,print(var)输出无效的int()文本,以10为基数:“bla”,这实际上是不可用的 然而,我创建了这个
try:
x = int(input())
except ValueError as var:
# HERE I WANT TO USE THE 'x' STRING VALUE
我知道使用异常消息的各种方法(例如使用str(var)
)
例如,如果输入是bla
,这将导致ValueError异常,print(var)
输出无效的int()文本,以10为基数:“bla”
,这实际上是不可用的
然而,我创建了这个程序,它应该使用str(var)
,这对我有利:
try:
x = int(input())
except ValueError as var:
s = str(var)
print('Exception message: ' +s)
i=0
while (s[i] != '\''):
i = i+1
i = i+1
print_str = ''
while (s[i] != '\''):
print_str = print_str + str(s[i])
i++
print('print_str = ' + print_str)
经过几次修改后,此程序可能会正常工作
因此,我的问题是:有没有更直接的方法来获取“x”字符串值?您不能访问
中的x
,除非它从来没有被分配过,因为在x=
发生之前,异常会被抛出int(输入(…)
中的某个位置。相反,要:
x = input(...)
try:
x = int(x)
except ValueError:
print("Couldn't make '{0}' an integer.".format(x))
您无法访问中的x
,除非
,因为它从未分配过-在x=
发生之前,异常被抛出int(输入(…)
中的某个位置。相反,要:
x = input(...)
try:
x = int(x)
except ValueError:
print("Couldn't make '{0}' an integer.".format(x))
为了进一步了解用户的响应,您无法捕获大多数SyntaxError
s,因为它们发生在编译时。因此,即使运行代码也没有任何希望,更不用说从错误中恢复了。进一步的响应,您无法捕获大多数在编译时发生的语法错误。因此,即使运行代码也没有希望,更不用说从错误中恢复。是的,i++
是无效语法。它与异常处理无关。Python不是C++和java。修复它,我的坏(可能是因为我经常使用C++)。这个较低的程序并不是这个问题的主要目的。是的,i++
是无效的语法。它与异常处理无关。Python不是C++和java。修复它,我的坏(可能是因为我经常使用C++)。无论如何,这个较低的程序并不是这个问题的主要目的。。