zoukankan      html  css  js  c++  java
  • 包的路径和异常处理

    绝对路径和相对路径

    绝对路径就是从上往下一级一级的导入,最常用的就是绝对路径

    绝对路径的优点:不管在包的内部还是外部,导入了就可以用

         缺点:不能挪动,但是很直观

    相对路径就是from 包.模块           加.的就是相对路径。例如import.A包  接下来A包里面的所有功能都能够使用了

    相对路径的优点:可以随意移动包的位置,只要能找到包的位置,就可以使用包里的模块

         缺点:不能再包里使用模块了。例如在a下面有b和c,一旦在b里面用了相对路径调用模块,接下来在c里面就不能调用a内部的所有模块,只能在a的外部才能够调用

    无论是from还是import都遵循一个原则,凡是带.的左边一定是一个包

    需要注意的是from后import导入的模块,必须是明确的一个不能带点,否则会有语法错误,如:from a import b.c是错误语法

     异常处理

    异常处理:处理的是代码当中的逻辑错误,例如1/0,2+'3'

    异常处理格式

    try:
    ret = int(input('请输入'))
    print(ret*'*') #必须放入try和except内部才可以执行异常处理
    except ValueError as error:
    print('您输入的内容有误,请重新输入数字',error)


    另外except支持多分枝
    try:
    print('1111')
    1/0
    print('2222')
    name
    2+'3'
    [][3]
    {}['k']
    ret = int(input('number >>>'))
    print(ret*'*')
    except ValueError:
    print('输入的数据类型有误')
    except Exception:
    print('你错了,老铁')
    else:
    print('没有异常的时候执行else中的代码')
    print('===========')

    有没有一种能处理所有异常的处理方式呢,有的
    except Exception  #这样就可以处理所有的异常

    有了万能处理仍然不完美,因为不知道哪里出现了异常,那么就需要
    try:
    print('1111')
    1/0
    print('2222')
    name
    2+'3'
    [][3]
    {}['k']
    ret = int(input('number >>>'))
    print(ret*'*')
    except Exception as error: #as 给万能处理起别名
    print('你错了,老铁',error) #在这里把异常的位置打印出来


    程序一旦发生错误,就从错误的位置停下来了,不在继续执行后面的内容
    使用try和except就能处理异常
    try是我们需要处理的代码
    except 后面跟一个错误类型 当代码发生错误且错误类型符合的时候 就会执行except中的代码
    except支持多分支
    有没有一个能处理所有错误的类型 : Exception
    有了万能的处理机制仍然需要把能预测到的问题单独处理
    单独处理的所有内容都应该写在万能异常之前
    else : 没有异常的时候执行else中的代码
    函数里做异常处理用,不管是否异常去做一些收尾工作


    finally   的作用是不管是否发生异常,都执行finally后面的内容
    finally一般用在函数当中,当遇到return时,依然会执行
  • 相关阅读:
    让你彻底明白什么叫游戏引擎(1)
    今后几年将有多于28部游戏电影面世
    Symbian系统体系结构
    让你彻底明白什么叫游戏引擎(2)
    网易程序笔试题
    [转贴]暴雪的霸王条款是否合理?
    CPU GPU设计工作原理《转》
    求伯君:向暴雪学习 金山不求一夜暴富
    我的职业规划
    网络游戏程序员新手入门 [转]
  • 原文地址:https://www.cnblogs.com/ddjl/p/8276019.html
Copyright © 2011-2022 走看看