您的位置:首页 > 脚本大全 > > 正文

python零基础入门五小时(从0开始的Python学习016异常)

更多 时间:2021-10-20 08:03:08 类别:脚本大全 浏览量:2382

python零基础入门五小时

从0开始的Python学习016异常

简介

当你的程序不能正常运行的时候,python会在控制台打印一段提醒,告诉你一个错误,这个错误就是异常。

错误

python零基础入门五小时(从0开始的Python学习016异常)

我在控制台写了一段无效的代码,将print()的括号去掉,在执行这条语句的时候,系统提示语法错误,无效的语句(我百度翻译的)。这就是错误处理器所作的工作。

再换一种方式写错误:

python零基础入门五小时(从0开始的Python学习016异常)

在程序获取用户输入的时候,我们使用ctrl+d引发了一个eoferror错误,接下来我们尝试去处理这样的错误。

处理异常

使用try---except语句来处理异常。我们通常把容易产生异常的语句放置在try块中,把做异常处理的语句放在except块中。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • import sys
  •  
  • try:
  •   a = input('enter something:')
  • except(eoferror):
  •   print('\nwhy did you do an eof on me ?')
  •   sys.exit()
  • except:
  •   print('\nsome error/exception occurred.')
  •  
  • print('done')
  • 运行结果

    python零基础入门五小时(从0开始的Python学习016异常)

    我们把所有可能引发错误的语句放在try块中,然后在except从句/块中处理所有的错误和异常。except从句可以专门处理单一的错误或异常,或者一组包括在圆括号内的错误/异常。如果没有给出错误或异常的名称,它会处理 所有的 错误和异常。对于每个try从句,至少都有一个相关联的except从句。

    你还可以让try..catch块关联上一个else从句。当没有异常发生的时候,else从句将被执行。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • import sys
  •  
  • try:
  •   a = input('enter something:')
  • except(eoferror):
  •   print('\nwhy did you do an eof on me ?')
  •   sys.exit()
  • except:
  •   print('\nsome error/exception occurred.')
  • else:
  •   print('no error')
  •  
  • print('done')
  • 运行结果

    python零基础入门五小时(从0开始的Python学习016异常)

    raise引发异常

    你可以使用raise语句抛出异常。你需要指明错误/异常的名称和伴随异常触发的异常对象。这个异常应该是error和exception类的子类。这就用到了继承的思想,使用__init__方法初始一些方法和参数。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • class shortinputexception(exception):
  •   def __init__(self,length,atleast):
  •     exception.__init__(self)
  •     self.length = length
  •     self.atleast = atleast
  •  
  • try:
  •   s = input('enter something-->')
  •   print(len(s))
  •   if len(s) < 3:
  •     raise shortinputexception(len(s),atleast = 3)
  • except(eoferror):
  •   print('\nwhy did you do an eof on me ?')
  • except(shortinputexception) as x:
  •   print('shortinputexception: the in input was of length %d,\
  •       was expecting at least %d' % (x.length,x.atleast))
  • else:
  •   print('no exception was raised.')
  • 运行结果

    python零基础入门五小时(从0开始的Python学习016异常)

    try...finally

    假如在你读文件的时候发生了异常,但是无论如何文件都要关闭。这个时候该怎么做呢?

    这里我们需要使用finally块来完成。

    在使用try捕获异常的时候,我们可以同时使用except块和finally块。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • import time
  •  
  • try:
  •   f = open('poem.txt')
  •   while true: # our usual file-reading idiom
  •     line = f.readline()
  •     if len(line) == 0:
  •       break
  •     time.sleep(2)
  •     print(line)
  • finally:
  •   f.close()
  •   print('cleaning up...closed the file')
  • 运行结果

    python零基础入门五小时(从0开始的Python学习016异常)

    这里使用了time的sleep函数,里面的参数是它的运行间隔。

    python零基础入门五小时(从0开始的Python学习016异常)

    这样我们就有时间去使用ctrl+c使程序发生异常。这时候我们发现finally块中的语句还是运行的,文件正常关闭了。

    简极(∞+∞=∞ ∞-∞=∞)

    以上所述是小编给大家介绍的python异常详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!

    原文链接:https://www.cnblogs.com/liuhappy/p/10668515.html

    标签:Python 异常
    您可能感兴趣