黑马程序员--Java笔记07--异常

原创 2015年11月19日 13:08:53
------- android培训java培训、期待与您交流! ----------

异常

异常:在运行时期发生的不正常情况,Java通过面向对象将将问题封装成对象,用异常对问题进行描述

可抛性:凡是可以被throwthrows所操作的类都具有可抛性

异常分为两大类:

Error:一般不可处理

特点:由JVM抛出的严重性问题

这种问题发生一般不针对性处理,直接修改程序

Exception:可处理

子类的后缀名都是用其父类作为后缀

Throwable中的方法:

1.getMessage():获取异常信息,返回字符串

2.toString():获取异常类名和异常信息,返回字符串

3.printStackTrace():获取异常类名和异常信息,以及异常出现在程序中的位置,返回值void

4.printStackTrace(PrintStream s):将异常内容保存在日志文件中,以便查阅

自定义异常:自定义问题描述

如果让一个类成为异常类,必须要继承异常体系,这样才可被throwthrows操作,具备可抛性

自定义类继承exception或其子类,通过构造函数定义异常信息

Throwsthrow的区别

1.throws用于标识函数暴露出来的异常类,可以抛出多个,逗号分割,

  throw用于抛出异常对象

2.throws用在函数上,后面跟异常类名,

  Throw用在函数内,后面跟异常对象

3.定义功能方法时,要把出现的问题暴露出来让调用者去处理,,就通过throws在函数上标识

  在功能方法内部出现问题,程序不能继续运行,需要跳转,用throw把异常对象抛出

Exception异常的分类:

1.编译时被检测异常:除了RuntimeException体系之外的Exception及其子类

问题在编译时期就被检测,这样可以针对性的处理

2.编译时不检测异常RuntimeException及其子类

这种问题的发生,无法让功能继续,这种问题一般不处理,直接编译通过,在运行时让调用者调用的程序强制停止,让调用者对代码进行调整

RuntimeException是那些可能在Java虚拟机正常运行间抛出的异常的超类

可能在执行方法期间抛出但并未被捕获的RuntimeException的任何子类都无需在throws子句中进行声明

所以自定义异常时,要么继承Exception,要么继承RuntimeException

异常的捕捉形式:

try{} catch{} finally{}

Finally代码块只有在一中情况下不被执行,就是之前执行了System.exit(0)

Finally代码块通常用来关闭资源

注意:try是一个独立的代码块,在其中定义的变量只在该变量块中有效,如果在try以外继续使用,需要在try外建立引用,在try中对其进行初始化

异常的处理原则

1.函数内如果抛出需要检测的异常,那么函数上必须要声明,否则必须在函数内使用try catch捕捉,否则编译失败

2.如果调用到了声明异常的函数,要么try catch,要么throws,否则编译失败

3.功能内可以解决用catch,解决不了用throws

4.一个功能抛出多个异常,调用时必须有对应多个catch进行处理

代码块组合

try catch finally   try catch(多个)     try finally

异常的注意事项

1.RuntimeException及其子类在函数中被throw抛出,可以不用在函数上声明

2.子类在覆盖父类方法时,父类方法如果抛出异常,那么子类的方法只能抛出父类的异常或者该异常的子类

3.如果父类抛出多个异常,那子类只能抛出父类异常的子集

4.如果父类方法没有抛出异常,那么子类覆盖时就不能抛,只能try

版权声明:本文为博主原创文章,未经博主允许不得转载。

黑马程序员_java基础笔记(07)...IO流

IO(InputStream,outputStream)字节流   (Reader,Writer)字符流   IO流用来处理设备之间的数据传输,java对数据的操作是通过流的方式,java用于操作...

黑马程序员_Java基础_我的Day07学习笔记

01. 构造方法的重载及注意事项(掌握) A:案例演示 构造方法的重载 重载:方法名相同,与返回值类型无关(构造方法没有返回值),只看参数列表 B:构造方法注意事项 a:如果我们没有给出构造方法,...

黑马程序员_java基础学习笔记07_IO流

------- android培训、java培训、期待与您交流! ----------
  • Troy_Fu
  • Troy_Fu
  • 2015年05月22日 21:51
  • 921

黑马程序员 JAVA学习笔记 ——— 异常

android培训、java培训、期待与您交流!  异常是什么? 是对问题的描述。将问题进行对象的封装。 也就是说将问题出在哪里告诉编写者的一样东西。 异常类的体系: java.lan...
  • Dunamis
  • Dunamis
  • 2014年05月16日 15:20
  • 143

黑马程序员java基础试题、笔记

  • 2015年01月29日 11:23
  • 3.57MB
  • 下载

黑马程序员-java异常学习笔记

Java异常学习笔记 一. java异常的定义   在《java编程思想》中这样定义 异常:阻止当前方法或作用域继续执行的问题。虽然java中有异常处理机制,但是要明确一点,决不应该用"正常"...

黑马程序员--Java学习笔记之面向对象思想(多态、内部类、匿名内部类、异常类)

一、重载与覆盖的区别 重载:只看同名方法的参数列表,参数列表不同即为重载。 重写(覆盖):子类父类方法要一模一样,包括返回类型。 二、多态 1、定义:事物存在的多种表现形态。       类的多态,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员--Java笔记07--异常
举报原因:
原因补充:

(最多只允许输入30个字)