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 相关文章推荐
pyside写ui界面入门示例
Jan 22 Python
Python实现Linux下守护进程的编写方法
Aug 22 Python
python清除字符串里非字母字符的方法
Jul 02 Python
详解Python的Django框架中的模版继承
Jul 16 Python
Python 的内置字符串方法小结
Mar 15 Python
浅谈Python爬取网页的编码处理
Nov 04 Python
基于Django URL传参 FORM表单传数据 get post的用法实例
May 28 Python
Python3.5 处理文本txt,删除不需要的行方法
Dec 10 Python
python hbase读取数据发送kafka的方法
Dec 27 Python
python图像处理入门(一)
Apr 04 Python
Gauss-Seidel迭代算法的Python实现详解
Jun 29 Python
Python 实现输入任意多个数,并计算其平均值的例子
Jul 16 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
ThinkPHP标签制作教程
2014/07/10 PHP
win10环境PHP 7 安装配置【教程】
2016/05/09 PHP
PHP利用超级全局变量$_GET来接收表单数据的实例
2016/11/05 PHP
PHP实现数组的笛卡尔积运算示例
2017/12/15 PHP
jQuery 下拉列表 二级联动插件分享
2012/03/29 Javascript
JavaScript实现复制功能各浏览器支持情况实测
2013/07/18 Javascript
JS实现点击按钮后框架内载入不同网页的方法
2015/05/05 Javascript
详解JavaScript对象序列化
2016/01/19 Javascript
AngularJS 使用ng-repeat报错 [ngRepeat:dupes]
2017/01/19 Javascript
在Vue-cli里应用Vuex的state和mutations方法
2018/09/16 Javascript
VuePress 快速踩坑小结
2019/02/14 Javascript
node.js实现上传文件功能
2019/07/15 Javascript
JS一次前端面试经历记录
2020/03/19 Javascript
Webpack中SplitChunksPlugin 配置参数详解
2020/03/24 Javascript
Python中的字典遍历备忘
2015/01/17 Python
Python选择排序、冒泡排序、合并排序代码实例
2015/04/10 Python
对python中的xlsxwriter库简单分析
2018/05/04 Python
python 给DataFrame增加index行名和columns列名的实现方法
2018/06/08 Python
python3实现网络爬虫之BeautifulSoup使用详解
2018/12/19 Python
python实现kNN算法识别手写体数字的示例代码
2019/08/16 Python
利用PyQt中的QThread类实现多线程
2020/02/18 Python
完美解决jupyter由于无法import新包的问题
2020/05/26 Python
YOOX美国官方网站:全球著名的多品牌时尚网络概念店
2016/09/11 全球购物
adidas瑞典官方网站:购买阿迪达斯鞋子和运动服
2019/12/11 全球购物
外贸学院会计专业应届生求职信
2013/11/14 职场文书
咖啡书吧创业计划书
2014/01/13 职场文书
记帐员岗位责任制
2014/02/08 职场文书
大三学生做职业规划:给未来找个方向
2014/02/24 职场文书
学生党员的自我评价范文
2014/03/01 职场文书
《大江保卫战》教学反思
2014/04/11 职场文书
会计专业应届生自荐信
2014/06/28 职场文书
见习报告格式要求
2014/11/04 职场文书
领导新年致辞2016
2015/07/29 职场文书
同事欢送会致辞
2015/07/31 职场文书
2016寒假假期总结
2015/10/10 职场文书
SpringBoot前端后端分离之Nginx服务器下载安装过程
2022/08/14 Servers