zoukankan      html  css  js  c++  java
  • 定义不同错误的异常类 分类: python异常 2014-01-09 14:21 251人阅读 评论(0) 收藏

    #coding:utf-8
    '''
    用途:
    接收用户输出的参数,如果参数长度小于3,则抛出异常;如果参数中包含英文中的句号,则抛出相应的异常
    否则,输出参数中各个字符对应的ascii码值
    '''
    import sys
    
    class lengthlimit:
        def __init__(self,length,atleast):
            self.length = length
            self.atleast= atleast
    
    class translation:
        def __init__(self,chars,tag='.'):
            self.tag=tag
            self.chars=chars
        def toTrans(self):
            print '*'*10+"Arguments:"+self.chars+"*"*10
            for char in self.chars:
                print "char:"+char+"====>","num:"+str(ord(char))
    
            print
    def getargv(i):
        try:
            if len(i) <3:
                raise lengthlimit(len(i),3)
            elif '.' in i:
                raise translation(i)
    
        except lengthlimit,e:
            print 'curent length is:%d,%d required' %(e.length,e.atleast)
            print 
            print '*'*5+"Raise Exception again"+"*" * 5
            print 
            raise
    
        except translation,e:
            print "find '.' in %s,this is refused." % i
            print 
            print '*'*5+"Raise Exception again"+"*" * 5
            print 
            raise
        
        #处理其他异常
        except Exception,e:
            raise
        #如果没有引发异常,则输出各个字符的ascii码值
        else:
            t = translation(i)
            t.toTrans()
    if __name__=="__main__":
        for i in sys.argv[1:]:
            getargv(i)


    用户自定义异常也可以是类。利用这个机制可以创建可扩展的异常体系。

    以下是两种新的有效(语义上的)异常抛出形式:

    raise Class, instance
    
    raise instance


    raise instance  # 自定义的异常类,raise 引发的实际是类的实例对象

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    字符串常量池
    JDK1.8-java.lang.Object类源码阅读
    请给你的Mysql(InnoDB)表加上主键吧
    java线程占多大的内存,占哪里的内存?
    c# 多线程
    c# 遍历文件夹及其所有文件
    T-SQL 查询语句总结
    SQL Server使用LIKE运算符进行匹配查询
    sql server中关于批处理与脚本的简单介绍
    关于SQL Server数据表的五中约束
  • 原文地址:https://www.cnblogs.com/think1988/p/4627970.html
Copyright © 2011-2022 走看看