try....exception....finally

class MyException(Exception):
    def __init__(self,msg):
        self.msg=msg
    def __str__(self):
        return self.msg


try:
    print('start')
    raise MyException('this is a custom exception')##手动触发会被Exception捕获
except Exception as e:
    print(e)
finally:
    print('end')

##ret
start
 
this is a custom exception
 
end
import time
try:
    print('start...')
    time.sleep(10)
except KeyboardInterrupt as e:##按ctrl+c会执行这个语句块
    print('you press ctrl+c')
finally:
    print('end...')


myexception=MyException('231')
print(hasattr(myexception,'msg'))#True
print(hasattr(myexception,'msg1'))#False
print(getattr(myexception,'__str__')())#231
setattr(myexception,'fun',lambda x:x)
print(getattr(myexception,'fun')(1234))#1234
delattr(myexception,'fun')
try:  
   l = ["a", "b"]  
   int(l[2])  
except (ValueError, IndexError) as e:    
   pass 
  

  

原文地址:https://www.cnblogs.com/howhy/p/7828340.html