应用程序开发——异常(异常分类、常见异常、异常处理、自定义异常)

异常分类:Throwable:所有异常和错误的父类

●  Error:JVM无法解决的严重问题(JVM系统内部错误、资源耗尽等。一般不编写针对性的代码进行处理)
●  Exception:编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理
------------------------------------------------------------------------------------------------------------------
Exception:处理异常的作用:使程序能够继续运行
●  运行时异常:程序运行时才产生的错误(异常),可以不显示的处理,当发生时才处理
●  编译时异常:编写代码时,就发生的错误(异常),必须显示的处理
------------------------------------------------------------------------------------------------------------------
常见异常:
运行时异常:(java.lang.RuntimeException
●  类型转换异常:ClassCastException
●  空指针异常:NullPointerException
●  数组下标越界异常:ArrayIndexOutOfBoundsException
●  字符串下标越界异常:StringIndexOutOfBoundsException
●  算术异常:ArithmeticException
●  找不到异常ClassNotFoundException
IO流异常java.io.IOExeption
●  找不到文件异常FileNotFoundException
SQL异常java.sql.SQLException
------------------------------------------------------------------------------------------------------------------
异常处理:抓抛模式——抛出异常
程序执行过程中出现异常,会生成一个异常类对象,该对象将被提交给Java运行时系统,这过程称为抛出(throw)异常
异常对象的生成:
●  自动抛出:在当前代码中没有找到相应的处理程序,就会在后台自动创建一个对应异常类的实例对象并抛出
●  手动抛出:创建异常类型的对象或者在方法体上抛出异常类型

●  代码中抛出异常语法throw  new   异常类型("异常信息")
●  方法体上抛出异常语法throws   异常类型 
------------------------------------------------------------------------------------------------------------------
异常处理:抓抛模式——捕获异常(抓:把上面抛出来的异常,进行抓取处理))
方法内抛出异常,如果异常没有在调用者方法中得到处理,则继续被抛给这个方法的上层方法,直到异常被处理(如果异常回到main()方法并且也未处理,则程序运行终止),这过程称为捕获(catch)异常

注意:每个try可以伴随一个或多个catch,用于处理可能产生的不同类型的异常对象(只能处理和他类型相兼容的异常),如果不明确异常对象,也可以用其父类作为catch的参数。多个catch时,异常类型为“并列”关系,可以无先后顺序。子父类关系,必须把子类异常写在父类异常之前。finally不是必须的,需要时才抒写。try{}catch{}可以嵌套
------------------------------------------------------------------------------------------------------------------
捕获异常有关信息:(与其它对象一样,可以访问一个异常对象的成员变量或调用它的方法)
●  异常信息异常对象.getMessage( )
●  所有信息异常对象.printStackTrace( )(异常类型,错误消息,程序运行跟踪等等)

------------------------------------------------------------------------------------------------------------------
处理过程:
Try中检测到异常会将异常对象传递给catch,catch捕获到异常进行处理。Finally里通常用来关闭资源

------------------------------------------------------------------------------------------------------------------
自定义异常类:
●  需要编写自己需要运行的重载构造器
●  对象通过throw抛出

------------------------------------------------------------------------------------------------------------------
异常处理5个关键字:

------------------------------------------------------------------------------------------------------------------
自己整理,有些地方是扒拉的,如有侵犯,还望告知

展开阅读全文

没有更多推荐了,返回首页