九、异常处理

1、分类

(1)可控式异常:可预知的错误,在程序表一时对程序中可能存在的错误进行处理,给出具体的错误信息。

  例:IOException、SQLException、ClassNotFoundException、NoSuchFieldException、NoSuchMethodException

(2)运行时异常:能够通过编译,运行时报错。

  例:IndexOutOfBoundsException、NullPointerException、ArithmeticEception、IllegalArgumentException、ClassCastExcption

2、获取异常

  java.lang.Throwable类是所有异常类的超类。

  方法:String getLocalizedMessaage()、String getMessage()、

      void printStackTrace()、String toString()

3、处理异常

  try{}catch(){}finally{}

4、抛出异常

  throws

  语法:数据类型 方法名(形参列表) throws 异常类1,异常类2,...,异常类n{...}

  throw

  语法:throw new Exception(“对异常的说明”)

5、自定义异常

  继承Exception类,并提供含有一个String类型形参的构造方法。

  public class NewException extends Exception{

    public NewException(String s){

      super(s);

    }

  }

6、异常的使用原则

(1)尽量减少

(2)try-catch捕获的异常要做处理

(3)try-catch的范围不要太大

(4)一个方法被覆盖时,覆盖它的方法必须抛出相同的异常或子异常。

时间: 2024-08-25 16:27:17

九、异常处理的相关文章

Java编程思想学习(九) 异常处理

java的异常处理机制可以使程序有极好的容错性,让程序更加的健壮.所谓的异常,就是指的阻止当前方法或作用域继续执行的问题,,当程序运行时出现异常时,系统就会自动生成一个Exception对象来通知程序.这样就极大的简化了我们的工作. 当然java的异常对象有很多种,下面这幅图显示了java异常类的继承体系.  从图片中可以看到java将所有的非正常情况分成了两种: 异常(Exception)和错误(Error),他们都继承Throwable父类.Error错误一般是指与虚拟机相关的问题,如系统崩

oracle存储过程的使用

一. 使用for循环游标:遍历全部职位为经理的雇员 1. 定义游标(游标就是一个小集合) 2. 定义游标变量 3. 使用for循环游标 declare -- 定义游标c_job cursor c_job is select empno, ename, job, sal from emp where job = 'MANAGER'; -- 定义游标变量c_row c_row c_job%rowtype; begin -- 循环游标,用游标变量c_row存循环出的值 for c_row in c_j

ios -- 教你如何轻松学习Swift语法(三) 完结篇

一.自动引用计数 1.自动引用计数工作机制 1.1 swift和oc一样,采用自动引用计数来管理内存 1.2 当有强引用指向对象,对象的引用计数 +1 , 强引用消失,自动计数 -1 1.3 如果对象的引用计数为0 , 那么该对象会被销毁 2.循环引用 2.1 什么是循环引用? 两个(或多个)对象互相强引用 2.2 循环引用对项目有什么影响 循环引用会让对象不会被销毁,一直保存在内存中,可能导致项目运行不畅 2.3 怎么解决强引用问题? 只需要让其中一个对象对另外一个对象的引用变为弱引用即可 在

Python 面向对象(下)

本篇博客承接自Python 面向对象(上) 四. 继承,实现,依赖,关联,聚合,组合 待补充 参考资料: https://www.cnblogs.com/chinxi/p/7349768.html 五. 特殊成员 待补充 参考资料: 类中的特殊成员方法 待补充 参考资料: https://www.cnblogs.com/chinxi/p/7349768.html 五. 特殊成员 待补充 参考资料: 类中的特殊成员方法 六. issubclass,type,isinstence各自的用法和区别 1

面向过程与面向对象(一)

一.面向过程与面向对象:   面向过程: 重过程:解决问题,考虑的是解决问题的流程 解决问题的思路清晰,但拓展性不强   面向对象: 重对象:解决问题,找到解决问题的对象 解决问题的思路可能不止一条(理解解决问题的难度增加),但拓展性强 二.名称空间: 能产生名称空间的有:文件 | 函数 | 类 能产生名称空间的对象有__dict__这个值,通过该这个值访问到名字与地址的对应关系 def func(): pass func.__dict__['index'] = 10000 print(func

JAVA学习第十九课(java程序的异常处理 (二))

异常处理的捕捉形式: 这是可以对异常进行针对性处理的方式 六.try.catch的理解 具体格式: try { //需要被检测异常的代码 } catch(异常类 变量)//改变量用于接受发生异常的对象 { //处理异常的代码 } finally { //一定会被执行的代码 } 这三个代码块是一个整体. try是尝试,catch捕捉,finally最终化   什么时候用try&catch,什么时候用抛? 在定义功能时,如果这个问题你可以处理的了,那么就用try&&catch,处理不了

Python学习系列(九)(IO与异常处理)

Python学习系列(九)(IO与异常处理) Python学习系列(八)( 面向对象基础) 一,存储器 1,Python提供一个标准的模块,称为pickle,使用它既可以在一个文件中存储任何Python对象,又可以把它完整的取出来,这被称为持久的存储对象.类似的,还有一个功能与之相同的模块—cPickle,用c语言编写的,速度比pickle快1000倍. 2,示例: 1 import cPickle as p 2 shoplistfile='shoplist.data' 3 shoplist=[

spring boot 1.5.4 统一异常处理(九)

上一篇:springboot 1.5.4 配置文件详解(八) 1      Spring Boot统一异常处理 Spring Boot中实现了默认的error映射,但是在实际应用中,上面你的错误页面对用户来说并不够友好,我们通常需要去实现我们自己的异常提示. 以springboot项目为例,进行处理! springboot项目源码: https://git.oschina.net/wyait/springboot1.5.4.git 1.1  创建全局异常处理类 通过使用@ControllerAd

Think in Java(九):通过异常处理错误

1. finally能做什么? 当要把除内存之外的资源恢复到它们的初始状态时,就要用到finally子句.这种需要清理的资源包括:已经打开的文件或网络连接 2. 子类覆盖父类方法的时候,不能抛出比父类更多的异常 3. 异常处理的一个重要目标是把错误处理的代码同错误发生的地点相分离,这使你能在一段代码中专注于要完成的事情,至于如何处理错误,则放在另一段代码中完成.

项目分享九:客户端的异常处理

一.异常的处理 异常处理,是所有程序都应该有的功能,尤其是网络异常,在 APP 更是常见.我们来看看ChiTu Store 是如何处理异常.异常主要分两种情况: 1.服务端引发的异常,也就是服务端返回来的错误信息,当服务端异常后,返回的错误JSON信息为: { Type: 'ErrorObject', Code:'xxxx' } 2.客户端出现的异常,客户端出现的异常,绝大数为网络异常,ChiTu Store 主要处理这类的异常. 我们现在要看一下 ChiTu Store 是如何处理的. 二.重