Discuss / Python / 我感觉直接看出错信息就能定位到出错的地方

我感觉直接看出错信息就能定位到出错的地方

Topic source
Traceback (most recent call last): 
  File "C:\Users\wugengtao\AppData\Local\Temp\learn_python_5nmk_o0y_py\test_3.py", line 18, in <module> 
    main() 
  File "C:\Users\wugengtao\AppData\Local\Temp\learn_python_5nmk_o0y_py\test_3.py", line 15, in main 
    r = calc('99 + 88 + 7.6') 
  File "C:\Users\wugengtao\AppData\Local\Temp\learn_python_5nmk_o0y_py\test_3.py", line 10, in calc 
    return reduce(lambda acc, x: acc + x, ns) 
  File "C:\Users\wugengtao\AppData\Local\Temp\learn_python_5nmk_o0y_py\test_3.py", line 5, in str2num 
    return int(s) 
ValueError: invalid literal for int() with base 10: ' 7.6' 

main()有问题--> r = calc('99+88+7.6')算的过程有问题-->reduce也有问题--> int(s)有问题,

具体什么问题呢? Value Error ,int() 处理7.6有问题

像楼上的找到 int() 然后对其进行try except 有没有必要?

我理解下来,应该比较复杂的程序,在写的过程中,在一切可能的出错的地方写上try except,然后看对应的错误?是这样吗

在一切可能的出错的地方写上try except

要是知道哪些地方可能出错就会去避免错误了

有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,这种错误我们通常称之为bug,bug是必须修复的。

有的错误是用户输入造成的,比如让用户输入email地址,结果得到一个空字符串,这种错误可以通过检查用户输入来做相应的处理。

还有一类错误是完全无法在程序运行过程中预测的,比如写入文件的时候,磁盘满了,写不进去了,或者从网络抓取数据,网络突然断掉了。这类错误也称为异常,在程序中通常是必须处理的,否则,程序会因为各种问题终止并退出。

前两个你可能还能处理到,第三个就避免不了了


  • 1

Reply