异常机制、 Scanner类 day12
来源:互联网 发布:iphone刷机软件mac版 编辑:程序博客网 时间:2024/06/06 00:01
1、在Java中提供了大量的异常类,这些类都继承自 java.lang.Throwable 类.
Throwable类有两个直接的子类:ERROR和EXCEPTION。ERROR表示程序中产生的错误;EXCEPTION表示程序中产生的异常。
1.1、Error 类称为错误类,他表示Java运行时产生的系统内部错误或资源耗尽的错误,是比较严重的,紧靠修改程序本身是不能恢复执行的.
1.2、 Exception类称为异常类,他表示程序本身可以处理的错误.在开发Java程序中进行的异常处理.都是针对Exception类及其子类,在Exception类的众多子类中,有一个特殊的RuntimeExcepiton类,该类及其子类用于表示运行时异常.这种异常在编译的时候,编译器不会处理,只有运行代码的时候,如果异常发生了.此时程序才会进行异常处理.除了此类,Exception类下所有其它的子类都用于表示编译时异常.编译时异常必须要通过修改源代码从而使编译能够顺序通过.
2、编译时异常、运行异常、自定义异常
编译时异常
2.1、在Java中,Exception类中除了RuntimeException类及其子类,其它类都是编译时异常.编译时异常的特点是Java编译器会对其进行检查,如果出现异常就必须对异常进行处理.否则程序无法通过编译.
处理编译时期的异常有两种方式:
1. 使用 try … catch … 语句对异常进行`捕获`.
2. 使用 throws 关键字声明抛出异常,其目的就是让调用者对其进行处理.
运行时异常
自定义异常
JDK中定义了大量的异常类,虽然这些异常类可以描述编程时出现的大部分异常情况,但是在程序开发中有时可能需要描述程序中特有的异常情况.例如我们设计的Person类age不能为负数的情况.为了解决这个问题,在Java中允许用户自定义异常.但自定义的异常类必须继承自Exception或其子类
3、异常的处理方式:
3.1、捕获:try-catch-finally
1. try{
2. // 操作数据库
3. }catch(异常类型 ){
4. // 异常处理代码
5. }finally{
6. // 关闭和数据的连接代码 / IO 流
在catch代码块中增加了一个return语句,用于结束当前方法,此时程序就不会执行了,而finally中的代码仍会被执行,并不会被return语句所影响,也就是说,无论
程序是发生异常还是return语句结束,finally中的语句都会执行,正是由于这种特殊性,在程序设计时,经常会在try…catch … 后使用finally代码块来完成必须
做的事情.例如释放资源.
注意: finally中的代码块有一种情况下是不会执行的,那就是在try…catch…中执行了System.exit(0)语句.System.exit(0)表示退出当前的Java虚拟机,
Java虚拟机停止了,任何代码都不能再执行了.
3.2、声明:使用throws关键字对异常进行声明
throws 关键字声明抛出异常的语法格式 :
1. 修饰符返回值类型 方法名(参数列表)throws异常类型1,异常类型2...{2. // 方法实现体3. }说明 : throws 关键字需要写在方法声明的后面,throws后面需要声明方法中发生异常的类型,通常将这种做法称为方法声明抛出一个异常.
结论 : 只要是声明了编译时异常,无论是否会发生异常,都需要对其进行处理处理方式一 : try…catch…捕获处理.
处理方式二 : 使用throws关键字继续声明.
4、 throw 和 throws 的区别
throw:抛出
当在方法体中有异常的时候,这个异常需要抛出,这时我们可以在方法中使用throw关键字把这个异常抛出。throw new 用于抛出异常对象.
throws:声明
当方法中有编译时期的异常时,我们同时又需要把这个异常告诉给方法的调用者,希望方法的调用者提前进行处理,这时可以在方法上使用throws关键字声明方法中的异常。throws用于声明异常.
5、Scanner类,属于java.lang.object包中的java.util.Scanner
- 异常机制、 Scanner类 day12
- day12(Scanner)
- day12 异常
- 异常(day12)
- Scanner类Java.util.NoSuchElementException 异常。
- JAVASE基础-day12(常见对象(Scanner,String))
- Day12 --Scanner键盘录入对象 和 String字符串对象
- day12
- day12
- day12
- day12
- day12
- day12
- day12
- Day12
- day12
- Day12
- day12
- 简单的jsoup获取和处理html
- 如何区别UML中的聚合与组合
- HDU2063---过山车(二分图匹配基础题)
- adb shell logcat无法回车换行
- (HDU
- 异常机制、 Scanner类 day12
- 13. sort
- 函数的概念
- spring bean的使用总结
- Boolean Expressions
- jvm01--java内存区域
- 一个demo学会c#
- 阿里编程测验题
- 点对点通网络通信程序