常见异常举例

""" 一些异常举例:"""

'''模块不存在 ModuleNotFoundError: No module named 'data' '''
#import data1
'''索引越界 IndexError: list index out of range '''
li = [1,2]
#li[3]
'''key不存在 KeyError: 'a' '''
dict1 = {}
#dict1['a']
''' NameError: name 'a' is not defined '''
#a #未定义的变量
'''缩进错误 IndentationError: expected an indented block '''
# if 1:
# return True #缩进错误
'''语法错误 SyntaxError: invalid syntax '''
#def fund x: return x
''' 类型错误 TypeError: can only concatenate str (not "int") to str '''
#'a' + 2
''' 除数为0 ZeroDivisionError: division by zero'''
#2/0
''' 递归错误 未设置跳出条件 RecursionError: maximum recursion depth exceeded '''
# def f(x):
# return f(x)
# f(1)

异常捕获 try except finally

"""异常捕获
try(可能发生异常的语句)
except(发生异常后处理)
else(没有发生异常后执行的语句)
finally(不管有无异常都要继续执行的语句)
不捕获,发生异常后后程序会中断执行。捕获异常,可根据异常进行处理
"""
#捕获一种特定异常
try:
x = 10/0
print('x=',x) #异常后的不执行
except ZeroDivisionError:
print('除数不能为零') #发生异常后执行的部分
else:
print('没有除数异常') #没有发生异常后执行
finally:
x = 0
print('finally') #不管有无异常均一定会执行的部分

#捕获多种异常
try:
a
x = 10/0
except (ZeroDivisionError,NameError):
print('出错了') #发生异常后执行的部分
#捕获任何类型的异常
import traceback
try:
x = 10/0
a
except BaseException as e:
print(e) #仅显示异常信息
traceback.print_exc() #显示错误所在详细的堆栈信息
print('后续程序继续执行')

抛出异常raise

"""抛出异常 raise 错误类型(错误信息)"""
name = 'abc'
if len(name) <= 6:
raise ValueError('username必须大于6个字符')
else:
print('ok')

自定义异常

"""自定义异常类,继承自已有异常类"""
class userError(BaseException):
pass name = 'abc'
if name != 'abcd':
raise userError('user error')

the end!

python入门19 异常及异常处理 异常捕获的更多相关文章

  1. python入门(十一):异常

     1.异常概念: >>> a Traceback (most recent call last): File "<stdin>", line 1, i ...

  2. Python入门笔记(17):错误、异常

    一.什么是错误,什么是异常,它们两者区别 这里解释如下:个人觉得很通俗易懂 错误是指在执行代码过程中发生的事件,它中断或干扰代码的正常流程并创建异常对象.当错误中断流程时,该程序将尝试寻找异常处理程序 ...

  3. Python入门(一) 异常处理

    异常处理 捕捉异常可以使用try/except语句. try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理. 以下是语法: try: <语句> # ...

  4. Python入门版

    一.前言 陆陆续续学习Python已经近半年时间了,感觉到Python的强大之外,也深刻体会到Python的艺术.哲学.曾经的约定,到现在才兑现,其中不乏有很多懈怠,狼狈. Python入门关于Pyt ...

  5. python异常处理-异常捕获-抛出异常-断言-自定义异常-UDP通信-socketserver模块应用-3

    异常捕获 异常:程序在运行过程中出现了不可预知的错误,并且该错误没有对应的处理机制,那么就会以异常的形式表现出来 影响:整个程序无法再正常运行 异常的结构 异常的类型 NameError 异常的信息 ...

  6. 十九. Python基础(19)--异常

    十九. Python基础(19)--异常 1 ● 捕获异常 if VS异常处理: if是预防异常出现, 异常处理是处理异常出现 异常处理一般格式: try:     <............. ...

  7. python异常(概念、捕获、传递、抛出)

    异常 目标 异常的概念 捕获异常 异常的传递 抛出异常 01. 异常的概念 程序在运行时,如果 Python 解释器 遇到 到一个错误,会停止程序的执行,并且提示一些错误信息,这就是 异常 程序停止执 ...

  8. Python异常和异常处理

    Python异常和异常处理2017年12月20日 22:17:08 Megustas_JJC 阅读数:114 标签: python 异常处理 更多 个人分类: Python 版权声明:本文为博主原创文 ...

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

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

随机推荐

  1. Oracle utl_file_dir参数详解

    1 UTL_FILE_DIR参数定义 UTL_FILE_DIR是Oracle中的一个"静态参数",可以设置一个或多个路径.用于在PL/SQL中进行文件I/O操作(可以用utl_fi ...

  2. vue中使用对非表单元素使用contenteditable的问题

    先说下问题,再上解决方案: span编辑时有多余空格和回车会影响样式(我用的是span便以此为例) 代码:(有换行符) 效果图: 代码:(无换行符) 效果图: 当在span标签的contentedit ...

  3. 全网备份脚本rsync

    一,服务端配置 #!/bin/sh ######################################################### #by:kingle # #use: confi ...

  4. 使用Redis 配置替换fastjson 反序列化报错 com.alibaba.fastjson.JSONException: autoType is not support

    新建的GenericFastJson2JsonRedisSerializer里面添加白名 添加: static {        ParserConfig.getGlobalInstance().ad ...

  5. 简单的 shell 脚本 切分日志

    为避免日志过大,需要按天分割日志,定时计划任务脚本如下: /data/shell/backup_yesterday_nginx_log.sh declare logs_path="/data ...

  6. [ElasticSearch] 如何使用中文分詞ik與繁簡轉換stconvert插件

    一. 環境安裝 ElasticSearch(以下簡稱ES)安裝已經算相對簡單了, 但要使用需要配置的插件, 對剛入門的新手還是有點麻煩, 所幸medcl大神提供一個配置好的ES-rtf版本, 新手們在 ...

  7. 基础知识之 - C# Using的用法

    C#里面Using有两种用法: 1.作为指令. using+命名空间,导入其他命名空间中定义的类型,这样可以在程序中直接用命名空间中的类型,不必指定命名空间: 命名空间是.NET程序在逻辑上的组织结构 ...

  8. nyoj 1023——还是回文——————【区间dp】

    还是回文 时间限制:2000 ms  |  内存限制:65535 KB 难度:3   描述 判断回文串很简单,把字符串变成回文串也不难.现在我们增加点难度,给出一串字符(全部是小写字母),添加或删除一 ...

  9. css设置文字中间的小竖线

    主要css属性是border-right border-right:1px solid gray; padding-right:10px; padding-left:10px; <div dat ...

  10. js使用占位符替换字符串

    js使用占位符替换字符串是一个ES6中的模版字符串语法. 在``中使用 ${} var a = 5; var b = 10; console.log(`Fifteen is ${a + b} and ...