Python(错误和异常)

目录

一、错误

二、异常 

三、如何处理异常 


一、错误

  • 定义:在运行之前就发生或存在的,导致程序无法运行,同时也是程序本身不能处理的。
  • 分类:语法错误,语义错误。(语法代码逻辑错误,或不合法的输入错误)
  • 举例
    print(123) 
    1 ? 2

    (虽然第一句没有错误,但是因为第二句有语法错误,所以导致第一句无法运行)  

二、异常 

  • 定义:指在运行环境正常的情况下遇到的运行时错误,且程序在遇到异常处终止(前提是异常没有被处理),可以被处理(运行过程中)
  • 异常是非致命的,但也会导致程序的非正常终止。
  • 举例
    print(123)  
    text
    print(text)

     (虽然后面两句异常,但是第一句还是会运行)

三、如何处理异常 

  • 第一种语法:try:

                       正常执行的语句

                  except :

                       处理异常的语句

try:   
    1 / 0
except:
    print("分母不能为0")

  • 第二种语法:exception是所有异常的父异常,意味着他可以接受所有的异常。 

                    try:                     就相当于                    try:

                    except:                                                 except  exception:

  • 如果给了固定的异常类型,那么就只能接收这一种异常类型。
    try:
        1 / 0
    except ZeroDivisionError:
        print("分母不能为0")
    

    try:
        1 + ""
    except ZeroDivisionError:
        print("分母不能为0")

  • 第三种语法:可以写多个except
    try:
        1 + ""
    except ZeroDivisionError:
        print("分母不能为0")
    except TypeError:
        print("类型错误")

    (结果) 

         try:

              要执行的语句

         except ExceptionType1: 

               .........

         except ExceptionType2: 

               .........

          .........

         except ExceptionTypeN:  

               .........   

  • 第四种语法:  finally无论有没有遇到异常,都要执行。   

             try:

                   要执行的语句

             except ExceptionType1: 

                     .........

              except ExceptionType2: 

                     .........

              finally:

                    最后要做的事情  

num = 0
try:
    print("打开数据库")
    1 / num
except ZeroDivisionError:
    print("分母不能为零")
finally:
    print("关闭数据库")

         

num = 1
try:
    print("打开数据库")
    1 / num
except ZeroDivisionError:
    print("分母不能为零")
finally:
    print("关闭数据库")

 

  • 第五种语法:else是如果没有异常的时候,执行else中的语句。             

             try:

                   要执行的语句

             except ExceptionType1: 

                     .........

              .........

              except ExceptionTypeN: 

                     .........

              else:

                    没有遇到异常要执行的语句

              finally:

                    最后要执行的语句      

num = 0
try:
    print("打开数据库")
    1 / num
except ZeroDivisionError:
    print("分母不能为零")
else:
    print("normal")
finally:
    print("关闭数据库")

 

num = 2
try:
    print("打开数据库")
    1 / num
except ZeroDivisionError:
    print("分母不能为零")
else:
    print("normal")
finally:
    print("关闭数据库")

 

  •  重命名:as-->as newname
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值