黑马程序员--02--异常处理
2014-04-24 23:09
197 查看
黑马程序员--02--异常处理 ------- android培训、java培训、期待与您交流! ---------- /* 异常: 就是程序在运行时遇到不正常的情况 异常的由来: 问题是生活中的一种具体事物,java根据现实中的问题抽象成一种对象,专门描述java中所遇到的不正常现象也就是异常。 java中的问题分为两种: 一种是非严重的问题,一种是严重的问题。非严重的问题java用Exception描述,严重的问题java用Error描述。 对于Error一般不需要编写专门的代码进行处理。 对于Exception我们可以使用针对性的代码进行处理。 Error和Exception都具有一些共同的特征:比如不正常情况的信息,或引发的原因。 在编写程序的时候通过throws在函数上标识该函数可能会出现异常,如果需要声明多个可能出现的异常可以用","隔开,在函数上标识异常便于提高安全性。 当在函数内部使用了throw关键字抛出异常时必须对其进行处理,要么直接用throws在函数上声明,要么直接用try处理。 throws后面跟的是异常类。 throw后面跟的是异常对象。 Exception中特别的一个异常:RuntimeException 1、如果在函数内抛出RuntimeException异常,在函数上不需要throws编译一样通过。 2、如果在函数上声明异常,调用者也可以不进行处理,编译一样通过。 3、之所以不用在函数上声明是因为不需要调用者处理,当异常发生后希望程序停止,因为在程序中出现了无法运算的情况,需要重新修正代码才能继续。 处理异常: 1、在声明异常时要声明更为具体的异常,这样方便于处理。 2、对方法声明几个异常就对应几个catch块。如果多个cacth块中出现继承关系就要把父类异常向下放,否则子类异常不可能会读取到。 3、进行catch处理异常时不要简单的用printStackTrace()进行处理,一定要有具体的处理方式。 自定义异常: 1、必须继承Exception,原因是异常对象或者异常类都会被抛出,他们都具有可抛性,这是Throwable体系中的独有特点。 2、只有这个体系中的类和对象才可以被throws或throw操作。 3、自定义异常时如果遇到异常程序就无法继续进行运算,这样就要继承RuntimeException类。 4、自定义异常时可以将信息使用super关键字传递给父类的构造函数使用父类提供的方法,而不用重写方法。 异常分两种: 1、运行时异常。(RuntimeException) 该异常在编译时不需要被处理,编译器不检查。 该异常的发生不需要处理,需要程序停止,再重新修正代码。 2、编译时异常。 该异常需要进行处理,没有处理就会编译失败。 该异常被标识,标识可以处理。 字父类继承时覆盖方法的抛异常问题: 1、例如有A<B<C("<"为继承)三个异常,父类中抛了B异常,子类中只能抛C或者B异常,而不能抛A异常。 2、如果父类方法抛出多个异常,子类方法覆盖父类方法时只能抛父类异常的子集。 3、如果父类或者接口的方法中没有异常抛出,子类或者实现接口时也不能抛出异常。如果子类方法发生了异常只能进行try处理,绝对不能抛。 异常的优点: 1、将问题进行封装。 2、将正常的代码与异常的代码相分离,方便于阅读。 */ //异常演示 class minusNumException extends Exception//自定义异常 { minusNumException(String msg) { super(msg);//把信息传递给父类的构造函数 } } class SuanFa { public int divi(int a, int b)throws ArithmeticException,minusNumException { if(b<0) { thrownew minusNumException("除数不能为负数!"); } return a/b; } } class ExceptionDemo { public static void main(String[] args) { SuanFa a = new SuanFa(); try { int x = a.divi(4,-2); System.out.println(x); } catch(Exception e) { System.out.println(e.toString()); } System.out.println("Over!"); } } |
相关文章推荐
- 黑马程序员_日记7_Java错误、异常及其处理
- 黑马程序员-----------java异常处理
- 黑马程序员:JAVA异常处理机制
- 黑马程序员------面向对象(No.7)(内部类、异常概述、异常try-catch、异常声明throws、多异常处理)
- 黑马程序员_学习笔记08-异常处理
- 黑马程序员-异常介绍与处理
- 黑马程序员——Java异常处理学习笔记
- 黑马程序员_笔记十_异常的捕获及处理
- 黑马程序员_Java异常处理
- Java基础知识强化之IO流笔记02:try...catch的方式处理异常
- Java进阶02 异常处理
- 黑马程序员——基础学习--- Io异常处理方法
- 黑马程序员——Java基础:异常处理机制
- 黑马程序员-------异常处理和常用类
- 黑马程序员_Java第18天知识总结_System类_Runtime类_Date_Calendar_Math_Random_InputStream_OutputStream_IO异常的处理
- 02Scala-函数定义、流程控制、异常处理入门实战
- 黑马程序员_4_异常类捕获与处理方式
- 黑马程序员-----------------java异常处理总结
- 黑马程序员-JAVA高级视频_IO输入与输出-18天-3(IO异常处理方式)
- 黑马程序员 Java基础 处理异常信息以及自定义异常