python下异常处理

简介: 1、python下异常如何处理: 1 #encoding=utf-8 2 3 """ 4 python遇到异常,程序直接运行 5 try: 6 "判断有可能抛出异常的代码" 7 print "haha" 8 except: ...

1、python下异常如何处理:

  1 #encoding=utf-8
  2 
  3 """
  4 python遇到异常,程序直接运行
  5 try:
  6     "判断有可能抛出异常的代码"
  7     print "haha"
  8 except:
  9     "异常下运行的代码"
 10 else:
 11     "运行没有异常时候的逻辑"
 12 finally:
 13     "不管try判断如何,该代码总会执行"
 14 
 15 合理利用异常:
 16     1、不得不用的地方采用异常;
 17     2、正确使用异常:需要对异常进行捕获
 18      比如:except IOError:   
 19 
 20 """
 21 
 22 a = [1, 2, 3, 4, 5, 6]
 23 
 24 print a[4]
 25 
 26 try:
 27     print a[6]
 28 except:
 29     print u'哈哈'
 30 
 31 print "继续可以到这里"
 32 
 33 
 34 try:
 35     print a[6]
 36 except:
 37     print "huhu"
 38 else:
 39     print "hoho"
 40 finally:
 41     print "hehe"
 42     
 43     
 44 import urllib
 45 sth_url = "http://wsdfsdf"
 46 
 47 try:
 48     d = urllib.urlopen(sth_url)
 49 except:
 50     print "出错了"
 51 else:
 52     content = d.read()
 53 finally:
 54     pass
 55     #d.close()
 56     
 57 """
 58 异常的note:
 59     1、一个try对应一个except
 60     2、使用python内置异常,来对应自身情况;
 61     IOErro, IndexError
 62     3、捕获异常的办法:
 63         import logging
 64         logger = logging.getLogger()
 65         #logfile = 'excetion_demo.log'    #log文件名
 66         hdlr = logging.FileHandler('/tmp/sendlog.txt')
 67         formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
 68         hdlr.setFormatter(formatter)
 69         logger.addHandler(hdlr)  #logging绑定
 70         logger.setLevel(logging.NOTSET)
 71         
 72                
 73         import sys, logging
 74         try:
 75             d = urllib.urlopen("www.kdkdk.com")
 76         except:
 77             exc = sys.exc_info()
 78             loggin.debug(exc[1]
 79             print exc[1]
 80             print exc
 81     4、断言,assert
 82         assert 表达式,"出错后抛出message"
 83         assert 1>4,  "expression Error"
 84     先断言绝对不能发生的错误,然后在处理异常;
 85 """
 86 
 87 """
 88 with用法:自动回收垃圾
 89 #进入时,调用对象的__enter__
 90 #退出时,调用对象的__exit__函数
 91 
 92 d = open('a', 'r')
 93 d.read()
 94 d.close()
 95 
 96 with open('a', 'r')  as d:
 97     content = a.read()
 98 """
 99 
100 #with示例:
101 class sth(object):
102     def __init__(self, xixi):
103         self.a  = xixi
104         
105     def __enter__(self):
106         print u'哈哈, 进来了'
107         return self.a
108     
109     def __exit__(self, type, value, traceback):
110         print u'哈哈,出去了'
111 
112 with sth("gg") as s:
113     print s         #s为__enter__返回值
114 
115 """
116 定义自己的异常类
117 """
118 
119 class myException(Exception):
120     def __init__(self, error, msg):
121         self.args = (error, msg)
122         self.error = error
123         self.msg  = msg
124 
125 try:
126     raise myException(1, "my exception")
127 except Exception as e:
128     print str(e)    

 

相关文章
|
1月前
|
数据库连接 Python
Python中的异常处理除了Try语句,你还会啥?
Python中的异常处理除了Try语句,你还会啥?
37 1
|
25天前
|
Python
|
2天前
|
Python
Python编程中的异常处理:理解与实践
【9月更文挑战第14天】在编码的世界里,错误是不可避免的。它们就像路上的绊脚石,让我们的程序跌跌撞撞。但是,如果我们能够预见并优雅地处理这些错误,我们的程序就能像芭蕾舞者一样,即使在跌倒的边缘,也能轻盈地起舞。本文将带你深入了解Python中的异常处理机制,让你的代码在面对意外时,依然能保持优雅和从容。
136 73
|
2月前
|
Unix API Python
【Python】已完美解决:(Python3.8异常)AttributeError: module ‘time‘ has no attribute ‘clock‘
【Python】已完美解决:(Python3.8异常)AttributeError: module ‘time‘ has no attribute ‘clock‘
50 0
|
26天前
|
IDE 测试技术 开发工具
Python接口自动化测试框架(基础篇)-- 讨厌的异常处理
本文详细讨论了Python中的异常处理机制,包括异常捕获、异常抛出、自定义异常、环境清理,以及使用上下文管理器确保资源正确释放,最后还提到了Python的标准异常类。
14 1
|
1月前
|
开发者 Python
Python中的异常处理机制及其实践
【8月更文挑战第12天】Python的异常处理机制通过`try`和`except`结构显著提高了程序的稳定性和可靠性。在`try`块中执行可能引发异常的代码,如果发生异常,控制权将转移到与该异常类型匹配的`except`块。此外,还可以通过`else`处理无异常的情况,以及使用`finally`确保某些代码无论如何都会被执行,非常适合进行清理工作。这种机制允许开发者精确地捕捉和管理异常,从而提升程序的健壮性和可维护性。同时,Python还支持定义自定义异常,进一步增强了错误处理的灵活性。
39 4
|
1月前
|
监控 测试技术 数据库
Python自动化测试之异常处理机制
总体而言,妥善设计的异常处理策略让自动化测试更加稳定和可靠,同时也使得测试结果更加清晰、易于理解和维护。在设计自动化测试脚本时,务必考虑到异常处理机制的实现,以保证测试过程中遇到意外情况时的鲁棒性和信息的有效传达。
36 2
|
2月前
|
数据采集 存储 Java
如何让Python爬虫在遇到异常时继续运行
构建健壮Python爬虫涉及异常处理、代理IP和多线程。通过try/except捕获异常,保证程序在遇到问题时能继续运行。使用代理IP(如亿牛云)防止被目标网站封锁,多线程提升抓取效率。示例代码展示了如何配置代理,设置User-Agent,以及使用SQLite存储数据。通过`fetch_url`函数和`ThreadPoolExecutor`实现抓取与重试机制。
如何让Python爬虫在遇到异常时继续运行
|
18天前
|
PHP 开发者 UED
PHP中的异常处理:从基础到高级探索Python中的列表推导式:简洁而强大的工具
【8月更文挑战第30天】在PHP编程的世界中,异常处理是确保代码健壮性和可靠性的关键机制。本文将引导您了解PHP异常处理的基本概念,并通过实际示例展示如何有效地捕获和处理异常。我们将一起探索try-catch结构、自定义异常类以及高级异常处理技术,让您的PHP代码更加稳固和易于维护。
|
23天前
|
API C++ Python
【Azure 应用服务】Python fastapi Function在Azure中遇见AttributeError异常(AttributeError: 'AsgiMiddleware' object has no attribute 'handle_async')
【Azure 应用服务】Python fastapi Function在Azure中遇见AttributeError异常(AttributeError: 'AsgiMiddleware' object has no attribute 'handle_async')