python try except返回异常的信息字符串代码实例


Posted in Python onAugust 15, 2019

问题

https://docs.python.org/3/tutorial/errors.html#handling-exceptions

https://docs.python.org/3/library/exceptions.html#ValueError

try:
  int("x")
except Exception as e:
  '''异常的父类,可以捕获所有的异常'''
  print(e)
# e变量是Exception类型的实例,支持__str__()方法,可以直接打印。 
invalid literal for int() with base 10: 'x'
try:
  int("x")
except Exception as e:
  '''异常的父类,可以捕获所有的异常'''
  print(e.args)
# e变量有个属性是.args,它是错误信息的元组
("invalid literal for int() with base 10: 'x'",)try: datetime(2017,2,30)except ValueError as e: print(e) day is out of range for monthtry: datetime(22017,2,30)except ValueError as e: print(e) year 22017 is out of rangetry: datetime(2017,22,30)except ValueError as e: print(e) month must be in 1..12e = Nonetry: datetime(2017,22,30)except ValueError as e: print(e) month must be in 1..12e
# e这个变量在异常过程结束后即被释放,再调用也无效
 Traceback (most recent call last): File "<input>", line 1, in <module>NameError: name 'e' is not defined
errarg = None
try:
  datetime(2017,22,30)
except ValueError as errarg:
  print(errarg)
  
month must be in 1..12
errarg
Traceback (most recent call last):
 File "<input>", line 1, in <module>
NameError: name 'errarg' is not defined
try:
  datetime(2017,22,30)
except ValueError as errarg:
  print(errarg.args)

# ValueError.args 返回元组

('month must be in 1..12',)
message = None
try:
  datetime(2017,22,30)
except ValueError as errarg:
  print(errarg.args)
  message = errarg.args
  
('month must be in 1..12',)
message
('month must be in 1..12',)
try:
  datetime(2017,22,30)
except ValueError as errarg:
  print(errarg.args)
  message = errarg
  
('month must be in 1..12',)
message
ValueError('month must be in 1..12',)
str(message)
'month must be in 1..12'

分析异常信息,并根据异常信息的提示做出相应处理:

try:
  y = 2017
  m = 22
  d = 30
  datetime(y,m,d)
except ValueError as errarg:
  print(errarg.args)
  message = errarg
  m = re.search(u"month", str(message))
  if m:
    dt = datetime(y,1,d)
    
('month must be in 1..12',)
dt
datetime.datetime(2017, 1, 30, 0, 0)

甚至可以再except中进行递归调用:

def validatedate(y, mo, d):
  dt = None
  try:
    dt = datetime(y, mo, d)
  except ValueError as e:
    print(e.args)
    print(str(y)+str(mo)+str(d))
    message = e
    ma = re.search(u"^(year)|(month)|(day)", str(message))
    ymd = ma.groups()
    if ymd[0]:
      dt = validatedate(datetime.now().year, mo, d)
    if ymd[1]:
      dt = validatedate(y, datetime.now().month, d)
    if ymd[2]:
      dt = validatedate(y, mo, datetime.now().day)
  finally:
    return dt 
validatedate(20199, 16, 33)
('year 20199 is out of range',)
('month must be in 1..12',)
('day is out of range for month',)
datetime.datetime(2018, 4, 20, 0, 0)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用PDB模式调试Python程序介绍
Apr 05 Python
Python的自动化部署模块Fabric的安装及使用指南
Jan 19 Python
opencv改变imshow窗口大小,窗口位置的方法
Apr 02 Python
matplotlib 纵坐标轴显示数据值的实例
May 25 Python
浅谈python编译pyc工程--导包问题解决
Mar 20 Python
python实现nao机器人身体躯干和腿部动作操作
Apr 29 Python
在python里面运用多继承方法详解
Jul 01 Python
用python写一个定时提醒程序的实现代码
Jul 22 Python
Python操作Excel把数据分给sheet
May 20 Python
Django3中的自定义用户模型实例详解
Aug 23 Python
Opencv python 图片生成视频的方法示例
Nov 18 Python
Python requests库参数提交的注意事项总结
Mar 29 Python
python 多进程共享全局变量之Manager()详解
Aug 15 #Python
使用Python调取任意数字资产钱包余额功能
Aug 15 #Python
centos7之Python3.74安装教程
Aug 15 #Python
详解python列表(list)的使用技巧及高级操作
Aug 15 #Python
django项目中使用手机号登录的实例代码
Aug 15 #Python
python基于pdfminer库提取pdf文字代码实例
Aug 15 #Python
python模拟键盘输入 切换键盘布局过程解析
Aug 15 #Python
You might like
php将远程图片保存到本地服务器的实现代码
2015/08/03 PHP
php需登录的文件上传管理系统
2020/03/21 PHP
Laravel搭建后台登录系统步骤详解
2016/07/26 PHP
PHP实现上传图片到 zimg 服务器
2016/10/19 PHP
使用一个for循环将N*N的二维数组的所有值置1实现方法
2017/05/29 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
2017/11/17 PHP
键盘 keycode的值 javascript时触发事件时很有用的要素
2009/11/02 Javascript
jquerymobile局部渲染的各种刷新方法小结
2014/03/05 Javascript
js语法学习之判断一个对象是否为数组
2014/05/13 Javascript
js实现网页标题栏闪烁提示效果实例分析
2014/11/20 Javascript
javascript委托(Delegate)blur和focus用法实例分析
2015/05/26 Javascript
JavaScript SHA512加密算法详细代码
2016/10/06 Javascript
深入了解javascript 数组的sort方法
2018/06/01 Javascript
js如何找出字符串中的最长回文串
2018/06/04 Javascript
详解angular应用容器化部署
2018/08/14 Javascript
vue指令之表单控件绑定v-model v-model与v-bind结合使用
2019/04/17 Javascript
详解微信小程序胶囊按钮返回|首页自定义导航栏功能
2019/06/14 Javascript
javascript面向对象三大特征之多态实例详解
2019/07/24 Javascript
pycharm 使用心得(七)一些实用功能介绍
2014/06/06 Python
Python实现单词翻译功能
2017/06/06 Python
Django自定义过滤器定义与用法示例
2018/03/22 Python
Python学习笔记之变量、自定义函数用法示例
2019/05/28 Python
pandas 数据索引与选取的实现方法
2019/06/21 Python
Python异常处理例题整理
2019/07/07 Python
Python decorator拦截器代码实例解析
2020/04/04 Python
OpenCV+Python3.5 简易手势识别的实现
2020/12/21 Python
HTML5 video标签(播放器)学习笔记(二):播放控制
2015/04/24 HTML / CSS
Fossil德国官网:化石手表、手袋、珠宝及配件
2019/12/07 全球购物
AURALog面试题软件测试方面
2013/10/22 面试题
电气自动化专业职业规划范文
2014/02/16 职场文书
中药专业自荐信范文
2014/03/18 职场文书
力学专业求职信
2014/07/23 职场文书
领导干部四风问题自我剖析材料
2014/09/25 职场文书
2014年重阳节老干部座谈会上的讲话稿
2014/09/25 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
早上好问候语大全
2015/11/10 职场文书