异常处理

把可能会发生的错误,提前在代码里进行捕捉(监测)

try :

  code

except Exception:

出错后要执行的代码

下面是常见的异常

attributeError  试图访问一个对象没有的属性

Nameerror 访问一个没有变量

Valueerror 值类型不匹配

importError  导入不存在的模块

indentationError 缩进错误 -->  强类型错误,只要犯这种错误程序就会崩溃,这种错误是抓不到的

syntaxError  语法错误  --> 同上

indexError  下标索引超出边界错误 

Keyboardinterrupt   ctrl+c 无法退出程序 

EOFError    ctrl+d  无法退出程序

Typeerror  类型不符合

Unboundlocalerror  试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,导致你以为正在访问它

valueError  传入一个调用者不期望的值,及时值的类型是正确的

# -*- coding:utf-8 -*-

while True:
num1 = input("num1>>").strip()
num2 = input("num2>>").strip()
try:
num1 = int(num1)
num2 = int(num2)
result = num1 + num2
print(result,name)
# except Exception as err:
# print("info is error. check")
# print(err)
except NameError as e:
print(e)
except ValueError as e:
print(e)

Try ..else..finally  

Else 不触发异常执行里边的代码

Finally 无论触发异常与否都会执行里边的代码

  

自定义异常

# -*- coding:utf-8 -*-
#自定义异常 class YoutubeConnectionError(BaseException):
def __init__(self,msg):
self.msg = msg def __str__(self):
return self.msg name = "Alex"
d = [1,2,3] while True:
num1 = input("num1>>").strip()
num2 = input("num2>>").strip()
try:
num1 = int(num1)
num2 = int(num2)
result = num1 + num2
print(result)
#raise ImportError('123')
raise YoutubeConnectionError('根据法律不能翻墙')#主动触发异常
#d[3]
# except Exception as err:
# print("info is error. check")
# print(err)笔
except YoutubeConnectionError as e:
print(e)
except NameError as e:
print(e)
except ValueError as e:
print(e)
except Exception as e:
print('发生错误')
else:
print("Normal!!!,不发生异常走这里")
finally:
print('any无论错误与否,都会走这里')

Assert 断言的用途

Assert语法用于判断代码是否符合执行预期

Assert 1+1=2

Assert 1+ 2 = 2

它一般用来做单元测试,调用上千个借口,看是都会出现异常

def my_interface(name,age,sorce):
assert type(name) is str
assert type(age) is int
assert type(sorce) is float my_interface("Alex",22,66.3)

Python必须知道的异常处理的更多相关文章

  1. Python全栈【异常处理】

    Python全栈[异常处理] 本节内容: 1.异常处理 2.什么时候用异常处理 异常处理 1.异常处理: 异常就是程序运行时发生错误的信号,异常处理是在编程过程中为了增加友好性,在程序出现bug时一般 ...

  2. Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函数 os模块 hashlib模块 platform模块 csv模块

    Python第十一天    异常处理  glob模块和shlex模块    打开外部程序和subprocess模块  subprocess类  Pipe管道  operator模块   sorted函 ...

  3. Python标准异常和异常处理详解

    python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误.你可以使用该功能来调试python程序. 1.异常处理: 本站Python教程会具体介绍. 2.断言(Asserti ...

  4. Python开发基础-Day23try异常处理、socket套接字基础1

    异常处理 错误 程序里的错误一般分为两种: 1.语法错误,这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正 2.逻辑错误,人为造成的错误,如数据类型错误.调用方法错误等,这些解 ...

  5. python基础之try异常处理、socket套接字基础part1

    异常处理 错误 程序里的错误一般分为两种: 1.语法错误,这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正 2.逻辑错误,人为造成的错误,如数据类型错误.调用方法错误等,这些解 ...

  6. python面向对象其他相关-异常处理-反射

    1.isinstance(obj, cls) 检查是否obj是否是类 cls 的对象   2.issubclass(sub, super) 检查sub类是否是 super 类的派生类 n1 = 10 ...

  7. 洗礼灵魂,修炼python(28)--异常处理(2)—>运用异常

    你可能会想,卧槽这标题取的,前面不是说异常就是报错吗?异常还能运用? 是的,异常确实可以运用,可以刻意制造异常,在出现异常时捕获异常并对异常处理,所以进入本篇博文的话题—异常处理 异常处理: 异常处理 ...

  8. 【python学习-6】异常处理

    最近在网上看到了一种学习方法名叫费曼学习法,说的是学习一个东西的时候,要尝试着给别人讲出来,就是一种备课式的学习. 第一步,选择一个你想要理解的概念, 然后拿出一张白纸, 把这个概念写在白纸的最上边. ...

  9. python爬虫之urlError异常处理

    1.URLError URLError产生的原因: (1)网络无连接,即本机无法上网 (2)连接不到特定的服务器 (3)服务器不存在 import urllib.request import urll ...

  10. python之旅:异常处理

    一 什么是异常 异常就是程序运行时发生错误的信号(在程序出现错误时,则会产生一个异常,若程序没有处理它,则会抛出该异常,程序的运行也随之终止),在python中,错误触发的异常如下 一个异常分为三部分 ...

随机推荐

  1. Android Button的四种点击事件

    bta1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.m ...

  2. java实现顺时针螺旋填入

    从键盘输入一个整数(1~20) 则以该数字为矩阵的大小,把 1,2,3-n*n 的数字按照顺时针螺旋的形式填入其中.例如: 输入数字 2,则程序输出: 1 2 4 3 输入数字 3,则程序输出: 1 ...

  3. C++拷贝构造函数被调用的时机

    拷贝构造函数调用的几种情况: 当用类的一个对象去初始化该类的另一个对象(或引用)时系统自动调用拷贝构造函数实现拷贝赋值. 若函数的形参为类对象,调用函数时,实参赋值给形参,系统自动调用拷贝构造函数.( ...

  4. 练习C++的vector语法-约瑟夫问题

    //测试vector,约瑟夫问题 #include <iostream> #include <vector> using namespace std; int main() { ...

  5. iOS-Code Data多线程的封装详解

    Code Data 的单例封装:      很容易发现,系统生成的模版代码将Core Data 的基本的准备(貌似还挺复杂!)都放在 AppDelegate中了,可苹果公司为什么会这么做呢?     ...

  6. android日常开发总结的技术经验60条

    全部Activity可继承自BaseActivity,便于统一风格与处理公共事件,构建对话框统一构建器的建立,万一需要整体变动,一处修改到处有效. 数据库表段字段常量和SQL逻辑分离,更清晰,建议使用 ...

  7. Flask 四剑客

    Flask 四剑客 返回字符串,返回 html , 跳转路由,返回 json from flask import Flask, render_template, redirect, jsonify a ...

  8. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(五)

    系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...

  9. NativeXml实例训练时注意事项_1

    NativeXml实例训练: 1)使用NativeXml操作xml文件时,需要将几个单元文件在Library中引用,配置好这个后面的就可自由训练.或按照自己想要的组合折腾.       2)运行程序调 ...

  10. (十)深入理解maven构建生命周期和各种plugin插件

    链接:https://blog.csdn.net/zhaojianting/article/details/80321488