如何除SyntaxError外?

nun*_*nos 2 python exception-handling

我想除了以下代码产生的错误,但我不知道如何.

from datetime import datetime

try:
    date = datetime(2009, 12a, 31)
except:
    print "error"
Run Code Online (Sandbox Code Playgroud)

上面的代码不是打印"error".这就是我希望能够做到的.

编辑:我想检查语法错误的原因是因为12a是命令行参数.

谢谢.

Sil*_*ost 9

命令行"参数"是字符串.如果您的代码是:

datetime(2009, '12a', 31)
Run Code Online (Sandbox Code Playgroud)

它不会产生SyntaxError.它提出来了TypeError.

在代码中使用之前,首先需要清除所有命令行参数.例如像这样:

month = '12'
try:
    month = int(month)
except ValueError:
    print('bad argument for month')
    raise
else:
    if not 1<= month <= 12:
        raise ValueError('month should be between 1 to 12')
Run Code Online (Sandbox Code Playgroud)