一,异常的概念 :异常是程序运行期出现的错误。
二,异常的分类:a,
三,异常的捕获和处理
理解一下五个关键字: throw throws try catch finally
try{ 可能发生异常的代码 }catch(Exception e){ 对异常捕获处理的代码}finally{ 可以写一些对资源的关闭的代码}
throw 对自己能够处理的异常,后面跟一个异常对象,在处理的时候抛出自定义的异常的做法。 catch (Exception e) {throw ApplicationException("系统发生故障,请联系管理员!!!");}
throws 对自己不能够处理或者不想处理的异常抛出的做法,是写在方法后面的。 eg:public void ReadFromFile() throws IOException {......}
throw vs throws :
throw:是手动的往外抛 。
thorws是调用方法的时候自动往外抛出异常的做法(声明异常)。
理解e.printStackTrace() 打印错误的堆栈信息。
使用自定义的异常,然后在程序里面调用的做法。
package Exception; public class MyException extends Exception { public MyException() { super(); } public MyException(String arg0, Throwable arg1) { super(arg0, arg1); } public MyException(String arg0) { super(arg0); } public MyException(Throwable arg0) { super(arg0); } } package Exception; /** * 登记学生人数的小例子。 * 用自定义的异常的做法。 * @author Administrator * */ public class TestException { public void register(int num) throws MyException{ if(num<0){ throw new MyException("学生人数为负值,不合理"); } System.out.println("要登记的学生人数是:"+num); } public void manager (){ try { register(-5); } catch (MyException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { TestException te = new TestException(); te.manager(); } }
方法重写声明式异常的原则:子类声明的异常范围不能超过父类声明的范围。
a,父类没有声明异常,子类也不能声明异常。
重写Thread的run()方法的时候可以加深理解,不能抛出不是从RuntimeException继承的异常
b,不可以抛出原有方法抛出的异常类的父类或上层类。
c,抛出异常类型的数目不可比原有方法抛出的还多(不是指个数)。
重写方法需要抛出与原方法异常类型一致的异常或者不抛出异常(抛范围大了不行,抛少范围小了也不行)
在一个web 项目中写一个自定义的异常一定是从RuntimeException继承而来的。比如ApplicationException
、DBException等。
在Web项目中catch块中处理异常标准的做法是:a,日志记录、b,将异常信息抛出到界面。
logger.error(ExceptionUtils.getStackTrace(exception)); serviceResult.setMessage(ExceptionUtils.getStackTrace(exception));
千万不能在catch 块中吞并异常,如果吞并了异常后期定位真正的异常会很麻烦。
异常的使用建议
a,避免使用异常处理代替错误处理,这样会降低程序的清晰性,并且效率低下。
比如登录时帐号名或密码不对,不能单独定义一种帐号或者密码不对的异常,然后在逻辑块
写try catch抛出这种异常。
b,处理异常不可以代替简单测试,只在异常情况下使用异常机制。
c,不要进行小粒度的异常处理,应该将整个任务包在一个Try语句块中。
d,异常往往在高层处理。
相关推荐
关于javaexception的讲解,很透彻,适合中高级别的!
java异常.pdf,里面包括了java的各种异常,而且有相应的代码示例!
Exception JAVA 自定义异常 Exception JAVA 自定义异常 Exception
下面小编就为大家带来一篇Java异常 Exception类及其子类(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
java 异常 问题收集 Exception
1、JDK的安装和环境变里的配置 2. HelloWorld程序 3、JAVA的数据类型及...17、JAVA异常Exception 18、JAVA线程之基础介绍 19、I0流之基本简介 20、I0流之字符流、字节流、转换流、缓冲流、对象流 21,I0流之HIO
exception基础,异常的基本用法。
java异常练习题,北大青鸟学士后课后练习,主要是异常处理的小测验
java 除0发生的算术异常(ArithmeticException) java 除0发生的算术异常(ArithmeticException)
Java异常架构与异常关键字 Java异常简介 Java异常架构 1. Throwable 2. Error(错误) 3. Exception(异常) 运行时异常 编译时异常 4. 受检异常与非受检异常 受检异常 非受检异常 Java异常关键字 Java异常处理 声明...
深入理解java异常(异常中的Error+异常中的Exception+检查异常+运行时异常+异常处理+throws关键字等)
Java异常处理的几个Example代码,让我们了解异常类型、声明异常、抛出和捕获异常、从异常获取信息、创建自定义异常等内容。
超全的java异常体系结构以及异常的处理方案,Throwable->Exception-> RuntimeException
,玩转java异常Exception体系和自定义异常 ,快速掌握常见数据结构和Collection集合框架体系基础 中级知识点 ,重点讲解Collection:集合框架体系List/Set/Map多种 实现和API ·玩转集合框架迭代器和HashCode和Equals...
常见java异常思维导图,异常:Exception以及他的子类,代表程序运行时发送的各种不期望发生的事件。可以被Java异常处理机制使用,是异常处理的核心。
Java自定义异常处理详细介绍,包括了很多比较经典的案例,可以自己研究自定义异常
从java异常类的结构层次可以看出,java类型的公共父类为Throwable.在程序运行中可能出现俩种问题:一种是由硬件系统或JVM导致的故障,java定义该故障为Error,这类问题是用户程序不能够处理的;另外一种问题是程序...
集结JAVA编程中遇到的各种异常解析, 集结JAVA编程中遇到的各种异常解析,
Java 中的 Exception 是什么? Java 中的检查型异常和非检查型异常有什么区别? Java 中的 NullPointerException 和 ArrayIndexOutOfBoundException 之间有什么相同之处? 在 Java 异常处理的过程中,你遵循的那些...
异常(Exception)的定义,意义和用法马克-to-win java视频