try again Please try again(python)

简介: 笔记

前言


       什么是异常?

       异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。


       一般情况下,在Python无法正常处理程序时就会发生一个异常。


       异常是Python对象,表示一个错误。


       当Python发生异常时我们需要捕获处理它,否则程序会终止执行。


一、python标准异常


10.png11.png12.png13.pngimage.png

二、应用实例


1、try/except():/except

15.png

 代码:

while True:
    try:
        x = int(input("请输入一个整数: "))
        break
    except (RuntimeError, TypeError, NameError,ValueError):#利用元组一次性判断多种异常
        print("您输入的不是整数,请再次尝试输入!")
    except:
        pass#不是上述异常时不处理继续执行
        #break#不是上述异常时不处理直接跳出

  效果:

16.png



        解析:


       可以利用元组一次性判断多种异常如:


       except (RuntimeError, TypeError, NameError,ValueError):


               print("您输入的不是整数,请再次尝试输入!")


       也可以用break和pass来跳过和跳出异常


       except:

               pass#不是上述异常时不处理继续执行

               #break#不是上述异常时不处理直接跳出


       最后一个except子句可以忽略异常的名称,它将被当作通配符使用。你可以使用这种方法打印一个错误信息,然后再次把异常抛出


2、try/except...else

       try/except 语句还有一个可选的 else 子句,如果使用这个子句,那么必须放在所有的 except 子句之后。


       else 子句将在 try 子句没有发生任何异常的时候执行。

17.png

 以下实例在 try 语句中判断文件是否可以打开,如果打开文件时正常的没有发生异常则执行 else 部分的语句,读取文件内容 。

for arg in sys.argv[1:]:
    try:
        f = open(arg, 'r')
    except IOError:
        print('cannot open', arg)
    else:
        print(arg, 'has', len(f.readlines()), 'lines')
        f.close()

使用 else 子句比把所有的语句都放在 try 子句里面要好,这样可以避免一些意想不到,而 except 又无法捕获的异常。

3、try-finally 语句

       try-finally 语句无论是否发生异常都将执行最后的代码。

18.png

try:
    runoob()
except AssertionError as error:
    print(error)
else:
    try:
        with open('file.log') as file:
            read_data = file.read()
    except FileNotFoundError as fnf_error:
        print(fnf_error)
finally:
    print('这句话,无论异常是否发生都会执行。')

效果图:

19.png

4、抛出异常

       raise [Exception [, args [, traceback]]]

       以下实例如果 x 大于 5 就触发异常:


       x = 10

       if x > 5:

           raise Exception('x 不能大于 5。x 的值为: {}'.format(x))

20.png

三、总结


       1、用try可以抛出我们易于理解的异常,帮助用户处理异常

       2、运用try来调试我们的程序,可特定跳过或跳出

       3、运用finally定义特定的语句的来抛出固定的语句。

相关文章
|
8月前
|
Python
Python--一言不合就try一下?
Python--一言不合就try一下?
35 0
|
Python
python的try方法中的else和finally的区别
#coding=utf-8__author__ = '14356_000'try: print '1'except: print '2'else: print '3'finally: print '4'#else执行的条件是try能够正常执行#finally是一定会执行 无论t...
642 0
|
Python
python try/except/finally
稍微总结一下,否则总是忘。 [python] view plaincopyprint? x = 'abc'   def fetcher(obj, index):       return obj[index]      fetcher(x, 4)   输出: [plain] view plaincopyprint?   File "test.
929 0