广州Python,Java小班培训
薯条老师在广州做Python和Java的小班培训,一个班最多10人,学员的平均就业薪资有11K。不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习。培训的课程有Python爬虫,Python后端开发,Python办公自动化,Python大数据分析,Python量化投资,Python机器学习,Java中高级后端开发。授课详情请点击:http://chipscoco.com/?cate=6
17.3.1 Python中的标准异常
Python预定义了一系列标准异常,这些标准异常的异常名称以Error作为后缀。Python中的异常主要有:语法异常,类型异常,名称异常,值异常,数学异常,系统异常,运行时异常。
对Python中的常用标准异常不是很熟悉的同学,可以复习17.1节中的内容 。
在Python中一切皆对象,异常也是一种对象。我们可以利用面向对象的设计方法,从Python的异常类型中进行继承、扩展,自定义一个新的异常。
17.3.2 自定义异常类型
Python中的标准异常名称以Error作为后缀,我们在自定义异常时,也应该遵循这样的命名规范,以保持统一。现在来写一个简单的代码实例,从Exception中进行继承。从某一个异常类型进行继承时,需要先了解该异常类型的构造函数以及属性、方法,以便进行扩展。对于Exception类型的定义信息,可以在交互模式中执行help(IndexError)来进行查找。
>>> help(Exception)Help on class Exception in module builtins:class Exception(BaseException)| Common base class for all non-exit exceptions.|| Method resolution order:| Exception| BaseException| object|| Methods defined here:|| __init__(self, /, *args, **kwargs)| Initialize self. See help(type(self)) for accurate signature.|| ----------------------------------------------------------------------
从help的输出可知,Exception继承于BaseException, __init__方法中声明的是可变参数。关于Exception的属性和方法,可以执行dir(Exception)来进行查找:
>>> dir(Exception)['__cause__', '__class__', '__context__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setstate__', '__sizeof__', '__str__', '__subclasshook__', '__suppress_context__', '__traceback__', 'args', 'with_traceback']
代码实例:
# __desc__ = 对Exception进行继承 """ Python中的标准异常,它们都直接或间接地继承于Exception类型 """ # 定义一个简单的ArgumentError类,用来表示与参数相关的异常 class ArgumentError(Exception): # 定义一个类属性__MESSAGE用来存储错误码和错误描述 __MESSAGE = { 0:"ok", 1: "data type mismatching" } def __init__(self, code, *args, **kwargs): self.__code = code if code in self.__MESSAGE else -1 self.__message = self.__MESSAGE[self.__code] if code in self.__MESSAGE else "argument error" super().__init__() # 自定义一个error方法,用来返回错误码和错误描述 def error(self): return self.__code, self.__message def calc_max(*args): the_max = 0 for _ in args: if not isinstance(_,(int, float)): # 在实际开发中应避免硬编码,可以定义一个类类型,专门用来存储错误码 raise ArgumentError(1) the_max = _ if _ > the_max else the_max return the_max if __name__ == "__main__": try: print("max:{}".format(calc_max(5,6,7,1,3,9))) # 在下面的calc_max中会抛出异常 print("max:{}".format(calc_max(5,6,7,1,3,9,"33"))) except ArgumentError as e: code, message = e.error() print("code:{} message:{}".format(code, message)) """ 程序的输出为: max:9 code:1 message:data type mismatching """
17.3.3 知识要点
(1) Python预定义了一系列标准异常,这些标准异常的异常名称以Error作为后缀。Python中的异常主要有:语法异常,类型异常,名称异常,值异常,数学异常,系统异常,运行时异常。
17.3.4 最具实力的小班培训
薯条老师在广州做Python和Java的小班培训,一个班最多10人。不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习。打算参加小班培训的同学,必须遵守薯条老师的学习安排,认真做作业和项目。把知识学好,学扎实,那么找到一份高薪的工作就是很简单的一件事。
(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python爬虫工程师高薪就业班,年薪十五万,免费领取课程大纲
(3) Java后端开发工程师高薪就业班,月薪11K-20K, 免费领取课程大纲
(4) Python大数据分析,量化投资就业班,月薪12K-25K,免费领取课程大纲
扫码免费领取Python学习资料: