异常处理

一.捕获异常try...except...

try:

11/0

except   ZeroDivisionError:

print('代码错误')

捕获多个错误要加():

try:

open('123.txt','r')#如果123.txt文件不存在,那么会产生IOError异常

print(num)#如果num变量没有定义,那么会产生NameError异常

except(IOError,NameError):

print(errorMsg)

二.获取异常的信息描述



三.else

try:

print(num)

except NameError as errorMsg:

print('产生错误了:%s'%errorMsg)

else:

print('没有捕获到异常)

四.try...finally...

在程序中,如果一个段代码必须要执行,即无论异常是否产生都要执行,那么此时就需要使用finally。 比如文件关闭,释放锁,把数据库连接返还给连接池等

importtime

try:

f = open('test.txt')

try:

whileTrue:

content = f.readline()

iflen(content) ==0:

break

time.sleep(2)

print(content)

except:

#如果在读取文件的过程中,产生了异常,那么就会捕获到

#比如 按下了ctrl+c

pass

finally:

f.close()

print('关闭文件')

except:

print("没有这个文件")

注意:不管有没有捕捉到错误,finally都会执行

五.异常的传递

deftest1():

print("----test1-1----")

print(num)

print("----test1-2----")

deftest2():

print("----test2-1----")

test1()

print("----test2-2----")

deftest3():

try:

print("----test3-1----")

test1()

print("----test3-2----")

exceptExceptionasresult:

print("捕获到了异常,信息是:%s"%result)

print("----test3-2----")

test3()

print("------华丽的分割线-----")

test2()

六.异自定义异常

'''

自定义异常类:

因为系统提供的异常类,无法描述我的异常。

我需要自定义一些异常类,来描述我所出现的异常。

'''

class NameShortException(Exception):

def __init__(self,msg,num):

self.msg = msg

self.num = num

def f():

'''这是输入姓名并判断,如果姓名的长度小于3,抛出NameShortException异常'''

name = input('请输入姓名:')

if len(name.strip())<3:

#手动抛出一个异常对象,以后的代码不再运行

raise NameShortException('名字的长度至少是3',len(name.strip()))

print('f......')

def main():

try:

f()

except Exception as ex:

print('错误信息是:%s,输入的字符串长度是:%s'%(ex.msg,ex.num))

print('其它代码。。。。。。。')

main()

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1异常 1.1异常简介 异常就是程序运行错误或者逻辑混乱。不能让用户看到直接代码的报错,需要给客户友好的提示。 异...
    步_尘阅读 3,587评论 0 0
  • 异常 异常就是程序运行错误或者逻辑混乱。不能让用户看到直接代码的报错,需要给客户友好的提示。 异常一般是程序中无法...
    冰封心动阅读 2,523评论 0 0
  • 1异常 1.1异常简介 异常就是程序运行错误或者逻辑混乱。需要给客户友好的提示。 异常一般是程序中无法完全避免,一...
    西多的大叔阅读 4,155评论 0 0
  • 本节内容如下: 什么是异常,对异常的解释和描述,口语描述和专业术语的联系 代码中出现错误的处理手段 异常处理方式什...
    大牧莫邪阅读 4,110评论 0 0
  • 说起来你可能不太相信。我今天早上做梦梦到你,大清早给我发一句信息说:可怕。就这两个字,虽然简短,但我在梦中仍然很开...
    桐花烂漫阅读 1,326评论 0 0