zoukankan      html  css  js  c++  java
  • python3 捕捉代码行出错的小程序

    下面主要使用的是: try .. except .. else .. finally ...,用的是 traceback 这个第三方模块。

     1 import traceback
     2 #捕捉哪行代码报错
     3 def calc(a,b):
     4     res = a/b
     5     return res
     6 
     7 def main():
     8     money = input('输入多少钱:')
     9     months = input('还几个月:')
    10     try:
    11         res = calc(int(money),int(months))
    12     except ZeroDivisionError as e: #try里面的代码如果出错了,走except里面的代码
    13         #处理异常,只要把ZeroDivisionError 整个报错类型放到except后面就好
    14         traceback.print_exc() #只是输出报错的详细信息,不影响程序运行
    15         print('还款月数不能小于1',e)
    16     except ValueError as e:
    17         traceback.print_exc()
    18         print('输入必须是整数',e)
    19     except Exception as e: #捕捉所有的异常
    20         traceback.print_exc()
    21         print('未知错误%s' %e)
    22     else:#没有出错的情况下走else
    23         print('每个月应该还%s' %res)#这句应该再成功的时候才输出
    24     finally:
    25         print('哈哈') #不管有咩有捕捉到异常,这里都会执行

     常见的异常:

    AttributeError: 试图访问一个对象没有的属性,比如foo.x,但是foo没有属性x

     
    IOError:输入/输出异常,一般是无法打开文件
     
    ImportError: 无法导入模块或包,一般是路径问题或名称错误
     
    IndentationError:代码没有正确对齐,属于语法错误
     
    IndexError:下标索引超出序列边界,比如x只有三个元素,却试图访问x[3]
     
    KeyError:试图访问字典里不存在的键
     
    KeyboardInterrupt:Ctrl+C被按下
     
    NameError:使用一个还未被赋予对象的变量
     
    SyntaxError: 语法错误
     
    TypeError: 传入对象类型与要求的不符
     
    UnboundLocalError:试图访问一个还未被设置的局部变量,一般是由于在代码块外部还有另一个同名变量
     
    ValueError: 传入一个调用者不期望的值,即使值的类型是正确的
  • 相关阅读:
    Linux中几种常用的查看文件内容的命令(file,cat,more,less,head,tail)
    Linux 链接文件讲解
    postgreSQL psql工具使用详解
    将Redhat,CentOS,Ubuntu虚拟机的IP设为静态IP的方法
    Hive中的Order by与关系型数据库中的order by语句的异同点
    Hadoop namenode节点无法启动的问题解决
    虚拟机上的Ubuntu 文件系统成为只读模式的解决办法
    Hive参数的临时设置和永久性设置
    hive动态分区和混合分区
    MongoDB之Linux下的安装
  • 原文地址:https://www.cnblogs.com/nancyzhu/p/8469772.html
Copyright © 2011-2022 走看看