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++)。无论如何,这个较低的程序并不是这个问题的主要目的。。