Syntax Error VS. Exception
Syntax Error 是语法错误,有可能是出现了typo比如request写成了reqeust,或者python 2,3的不兼容导致, 比如在Py3里写print i(print (i) 在python3里需要加括号。)
Exception 以下代码简单举例
number = int(input('Enter a number please: \n'))
print(720/number)
运行后,输‘asasasa’,” , 0.2 等都会出现exception或valueError (PyCharm会抛出valueError), 这是因为输入的type非int;而输入0 则会出现ZeroDivisionError,因为实际情况下0不可以作为分子。
解决如上exception,可以通过下述简单代码来处理:
while True:
try:
number = int(input('Enter a number please: \n'))
print(7/number)
break
# this exception helps when you get a ValueError
except ValueError:
print('Please make sure you enter an integer. \n')
# this exception gives a prompt when the number user types is zero
except ZeroDivisionError:
print('Please make sure you enter an integer that\'s not a zero. \n')
#'except' is used as a general exception when you're not sure about the source of your problem, not recommended
except:
print('Please enter an integer. \n')
#finally executes no matter what
finally:
print('this step is complete' )
至此,针对这段代码的exception就处理结束了。
如代码内注释提到的,except: 是作为一个general的exception处理,并不推荐使用,而finally: 是在任何条件下都会执行的语句。
注:本文只针对一些error和exception举例,并非涵盖所有
若有其他疑问,欢迎探讨,或Google,或stackoverflow。