Python包装异常处理方法

目录
  • 前言
  • 一、异常
    • 1.1、忽略
    • 1.2、捕获
    • 1.3、异常链
    • 1.4、自定义
    • 1.5、抛出
  • 二、异常的显示方式
    • 2.1、打印信息
    • 2.2、控制台警告
    • 2.2、存储文件

前言

相比java,python的异常和java中不同,python主要是防止程序异常被中止。一旦被catch后它还行往下执行。

一、异常

1.1、忽略

pass这个关键字相当于一个占位符,好比TODO是一样的,只表示此行什么也不做,不代表其它的行代码不执行;

try:
print(5/0)
except ZeroDivisionError:
pass
print("ddd") #这行还是可以正常执行的

1.2、捕获

def parse_int(s):
try:
n = int(v)
except Exception as e:
print('Could not parse, Reason:', e)

parse_int('30') ##Reason: name 'v' is not defined

1.3、异常链

try:
client_obj.get_url(url)
except (URLError, ValueError, SocketTimeout):
client_obj.remove_url(url)
try:
client_obj.get_url(url)
except (URLError, ValueError):
client_obj.remove_url(url)
except SocketTimeout:
client_obj.handle_url_timeout(url)
try:
f = open(filename)
except OSError:
pass

1.4、自定义

class NetworkError(Exception):
pass
class HostnameError(NetworkError):
pass
class CustomError(Exception):
def __init__(self, message, status):
super().__init__(message, status)
self.message = message
self.status = status
try:
msg = s.recv()
except TimeoutError as e:
print(e)
except RuntimeError as e:
print(e.args)

1.5、抛出

try:
raise RuntimeError('It failed') #抛出新异常-raise Error
except RuntimeError as e:
print(e.args)
def example():
try:
int('N/A')
except ValueError:
print("Didn't work")
raise #捕获后再抛出

二、异常的显示方式

2.1、打印信息

try:
print(5/0)
except ZeroDivisionError as e:
print(e.args)

2.2、控制台警告

import warnings
warnings.simplefilter('always')
def func(x, y, log_file=None, debug=False):
if log_file is not None:
warnings.warn('log_file argument deprecated', DeprecationWarning)

func(1, 2, 'a')

#第一行日志输出warn内容,第二行输出代码内容
/Users/liudong/personCode/python/pythonTest/app/base/base_type.py:5: UserWarning: log_file argument deprecated
warnings.warn('log_file argument deprecated')

2.2、存储文件

import json;
numbers = [2,3,4,5,6];
fileName = "numbers.json";
with open(fileName, "w") as fileObj:
json.dump(numbers, fileObj);
with open(fileName, "r") as fileObj:
number1 = json.load(fileObj);

到此这篇关于Python包装异常处理方法的文章就介绍到这了,更多相关Python 异常处理内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python自动化测试之异常处理机制实例详解

    目录 一.前言 二.异常处理合集 2.1 异常处理讲解 2.2 异常捕获 2.3 异常捕获原理 2.4 特定异常捕获 2.5 异常捕获的处理 2.6 except.Exception与BaseException 2.7 finally用法 2.8 异常信息的打印输出 三.总结 一.前言 今天笔者还是想要讲python中的基础,主要讲解Python中异常介绍.捕获.处理相关知识点内容,只有学好了这些才能为后续自动化测试框架搭建及日常维护做铺垫,废话不多说我们直接进入主题吧. 二.异常处理合集 2.

  • Python常见异常类型处理

    目录 1.Python语法错误 2.Python运行时错误 前言: 开发人员在编写程序时,难免会遇到错误,有的是编写人员疏忽造成的语法错误,有的是程序内部隐含逻辑问题造成的数据错误,还有的是程序运行时与系统的规则冲突造成的系统错误,等等. 总的来说,编写程序时遇到的错误可大致分为 2 类,分别为语法错误和运行时错误. 1.Python语法错误 语法错误,也就是解析代码时出现的错误.当代码不符合 Python 语法规则时,Python解释器在解析时就会报出 SyntaxError 语法错误,与此同

  • Python中的Selenium异常处理

    在进行爬虫爬取淘宝商品信息时候,利用selenium来模拟浏览器进行爬取时遇到了这个问题: selenium.common.exception.WebDriverException:Message:'chromedriver' executable needs to be in Path 详细如下图所示: 这一错误是因为没有配置好chromedriver,怎么配置呢?(我用的是chrome) 1.打开chrome 输入 “chrome://version/”来查看chrome版本 如图我的是63

  •  Python错误与异常处理

    1. 从键盘输入一个整数,求 100 除以它的商,并显示输出.要求对从键盘输入的数值进行异常处理. try:     n=int(input("请输入一个整数:"))     x=100/n     print(x) except ValueError:     print("异常,请重新输入:") else:         #可选项,必须try-except语句为前提     print("程序正常运行,没有捕捉到异常") 2.编程实现索引超

  • 如何在Python中进行异常处理

    目录 一.抛出异常和自定义异常 1.raise语句 2.自定义异常类型 二.捕捉异常 1.捕捉多个异常 2.获取异常信息 三.finally子句 一.抛出异常和自定义异常 Python中使用用异常对象(exception object)表示异常情况,当程序运行遇到错误后,就会触发发异常.相信大家在编码是都会遇到这种情况,那么如果异常对象并未被处理或捕捉,程序就会用报错然后终止执行. 1.raise语句 Python中的raise 关键字用于触发发一个异常,和我们熟悉的Java中的throw关键字

  • python数据分析实战指南之异常值处理

    目录 异常值 1.异常值定义 2.异常值处理方式 2.1 均方差 2.2 箱形图 3.实战 3.1 加载数据 3.2 检测异常值数据 3.3 显示异常值的索引位置 总结 异常值 异常值是指样本中的个别值,其数值明显偏离其余的观测值.异常值也称离群点,异常值的分析也称为离群点的分析. 常用的异常值分析方法为3σ原则.箱型图分析.机器学习算法检测,一般情况下对异常值的处理都是删除和修正填补,即默认为异常值对整个项目的作用不大,只有当我们的目的是要求准确找出离群点,并对离群点进行分析时有必要用到机器学

  • Python异常处理如何才能写得优雅(retrying模块)

    目录 前言 不负责任版本 简单处理版本 改进处理版本 安装与使用 安装 使用 总结 前言 在写程序时,我们会经常碰到程序出现异常,这时候我们就不得不处理这些异常,以保证程序的健壮性. 处理异常的版本有以下几种,你通常的做法是哪种? 不负责任版本 这种情况下,不作任何处理,任由程序报错,从而导致程序中断. 针对简单的程序,这样做没什么问题,大不了我遇到问题之后把问题解决,然后重新运行.但是如果是复杂的系统就会很麻烦了,可能你一个异常阻塞了系统的运行,带来灾难性的后果. 简单处理版本 简单处理版本,

  • 详解python文件的操作和异常的处理

    目录 一. 文件的操作 1.1创建文件 1.2写入数据 1.3读数据 1.4 2读数据 1.5读写数据 1.6删除文件 1.7写入文件 1.8读取图片 1.9备份图片 1.10文件重命名 1.11创建文件夹 1.11获取当前目录 二.异常 2.1各种异常的演示 2.2捕捉异常 2.3try/finally 2.4异常的传递 2.5触发异常 2.6自定义异常 总结 一. 文件的操作 1.1创建文件 格式:f = open('文件', 'w')或者f = open('文件', 'r') 1.2写入数

  • Python Pandas读取Excel日期数据的异常处理方法

    目录 异常描述 出现原因 解决方案:修改自定义格式 pandas直接解析Excel数值为日期 总结 异常描述 有时我们的Excel有一个调整过自定义格式的日期字段: 当我们用pandas读取时却是这样的效果: 不管如何指定参数都无效. 出现原因 没有使用系统内置的日期单元格格式,自定义格式没有对负数格式进行定义,pandas读取时无法识别出是日期格式,而是读取出单元格实际存储的数值. 解决方案:修改自定义格式 可以修改为系统内置的自定义格式: 或者在自定义格式上补充负数的定义: 增加;@即可 p

  • Python包装异常处理方法

    目录 前言 一.异常 1.1.忽略 1.2.捕获 1.3.异常链 1.4.自定义 1.5.抛出 二.异常的显示方式 2.1.打印信息 2.2.控制台警告 2.2.存储文件 前言 相比java,python的异常和java中不同,python主要是防止程序异常被中止.一旦被catch后它还行往下执行. 一.异常 1.1.忽略 pass这个关键字相当于一个占位符,好比TODO是一样的,只表示此行什么也不做,不代表其它的行代码不执行: try: print(5/0) except ZeroDivisi

  • Python基础知识方法重写+文件处理+异常处理

    目录 一.方法重写 二.运算符重载 三.文件处理 打开关闭文件 文件读写 四.异常处理 异常 抛出异常 最后 前言; Python基础知识+结构+数据类型 Python基础学习列表+元组+字典+集合 Python基础学习函数+模块+类 今天给大家分享的是第四篇,前面几篇我都放在上面了.小伙伴可以自己巩固复习 一.方法重写 print("-------------方法重写------------"); # coding=utf-8 class Parent: # 定义父类 def myM

  • Python包装之对象处理

    目录 概念 一.基础 1.1.toString方法 1.2.格式化输出 1.3.创建大对象 二.高级用法 2.1.通过字符串式调用函数 2.2.上下文管理器 概念 所有Python的对象都是扩展的PyObject,python的垃圾回收机制是计算引用,这个对象中定义了py_ssize就是用来做这个事的.类型对象可以理解为就是自定义的class.在Python中函数间传递的是都是泛型指针,所以可以通过PyObject的ob_type属性来判断实际的类型,这也是多态的一种表现. 在Python中的垃

  • Python语言异常处理测试过程解析

    这篇文章主要介绍了Python语言异常处理测试过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 (一)异常处理 1.捕获所有异常 try: x = 5 / 0 except: print('程序有错误') 2.捕获特定异常 try: x = 5 / 0 except ZeroDivisionError as e: print('不能为0',e) except: print('其他错误') else: print('没有错误') final

  • Python基础异常处理梳理总结

    目录 前言 一.常见的Python异常 AssertionError:断言语句(assert)失败 AttributeError:尝试访问未知的对象属性 IndexError:索引超出序列的范围 KeyError:字典查找一个不存在的关键字 NameError:尝试访问一个不存在的变量 OSError:操作系统产生的异常 SyntaxError:Python的语法错误 TypeError:不同类型间的无效操作 ZeroDivisionError:除数为零 二.try-except语句 三.对多个

  • Python常见异常处理总结

    目录 异常处理介绍 语法报错 异常处理 解决方法 抛出异常 自定义异常 其他内置函数 总结 异常处理介绍 在实际的开发中,我们经常遇到一些报错的例子,在pycharm的显示页面下,当我们看到一串串的红色的英文字母的时候,就是出现异常,这个时候如果英文好一点的童鞋,就可以按照它的提示,自己去解决.但是英文是很多的童鞋的软肋,不过你也不要担心,这个时候你就需要有一个翻译神器,我使用的是网易有道词典,不过有时候我们还是会遇到一些比较生僻的表达,所以本期文章我们就一起来看看关于Python实际开发过程中

  • MySQL数据库设计之利用Python操作Schema方法详解

    弓在箭要射出之前,低声对箭说道,"你的自由是我的".Schema如箭,弓似Python,选择Python,是Schema最大的自由.而自由应是一个能使自己变得更好的机会. Schema是什么? 不管我们做什么应用,只要和用户输入打交道,就有一个原则--永远不要相信用户的输入数据.意味着我们要对用户输入进行严格的验证,web开发时一般输入数据都以JSON形式发送到后端API,API要对输入数据做验证.一般我都是加很多判断,各种if,导致代码很丑陋,能不能有一种方式比较优雅的验证用户数据呢

  • Python 序列的方法总结

    最近在做Python 的项目,特地整理了下 Python 序列的方法.序列sequence是python中最基本的数据结构,本文先对序列做一个简单的概括,之后简单讲解下所有序列都能通用的操作方法. 任何序列都可以引用其中的元素(item). 下面的内建函数(built-in function)可用于列表(表,定值表,字符串) #s为一个序列 len(s) 返回: 序列中包含元素的个数 min(s) 返回:序列中最小的元素 max(s) 返回:序列中最大的元素 all(s) 返回:True,若果所

  • jstorm源码解析之bolt异常处理方法

    问题 用过storm或者jstorm的都知道,如果在bolt代码中发生了没被catch住的异常,所在worker进程会退出.本文就从源码角度分析一下具体设计,其实并不是"有异常然后进程崩了"这么简单. 实质 我们先看BasicBoltExecutor的源码: public void execute(Tuple input) { _collector.setContext(input); try { _bolt.execute(input, _collector); _collector

  • 以windows service方式运行Python程序的方法

    本文实例讲述了以windows service方式运行Python程序的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python # coding: utf-8 # SmallestService.py # # A sample demonstrating the smallest possible service written in Python. import win32serviceutil import win32service import win3

随机推荐