java学习笔记4.10
来源:互联网 发布:新会人民法院 淘宝拍卖 编辑:程序博客网 时间:2024/06/05 03:06
1.异常(exception)与错误(error):
exception是程序在运行中产生的问题,一般指轻度和中度的问题,如:下标越界,空指针异常。异常分为运行时异常和非运行时异常(C语言中又叫做受检异常)。而错误虽然也是程序运行中产生的问题,但是却是用户和程序员所无法控制的问题,例如:调用栈溢出,内存不足。异常与错误有一个共同的父类:Throwable(可抛出)
2.运行时异常:
运行时异常是一个程序在运行过程中可能发生的,可以被程序员避免也会被编译器忽略的异常类型,在程序开发过程中,我们应该尽量发现运行时异常的问题所在,并更改代码,以使得异常不会再次发生。运行时异常有一个共同的父类:RuntimeException。如果我们需要自定义一个运行时异常就需要继承RuntimeException
3.非运行时异常:
非运行时异常通常是用户错误或者不能被程序员所预见的问题,如:如果要打开一个文件,但是文件却已经被删除,此时就会产生异常。此类异常必须用java语言来处理,而不能被编译器简单的忽略。要定义一个非运行时异常需要继承Exception或者除RuntimeException以外的子类
4.发生异常时的情况:
当一个方法在调用栈中发生异常时一般会有三种情况:1、不理会该异常,从而导致该方法从调用栈中被弹出,异常抛給调用该方法的方法,如果不处理继续弹出,直到弹出main方法使程序崩溃或者直到被捕获;2、用try/catch关键字捕获该异常,不让它继续沿着调用栈向下抛;3、捕获该异常,然后用关键字抛出这个异常,该方法不会从调用栈被弹出,但是抛给了下面的方法。
try/catch/finally格式为:
try{//尝试运行代码}catch(Exception e){//出现异常运行代码,catch块可以有多个,但是只会执行一个catch块。按继承关系从子到父排}finally{/*finally中的代码一开始就会缓存,无论如何都会被执行,在没有检测到return语句时会最后执行,检测到了会在return之前执行*/}5、throws与throw关键字
thorws关键字写在方法名后面,后面跟异常类型,声明该方法会抛出一个异常,让方法调用者不能去简单忽略一个可能产生的异常,必须用语句去处理
throw关键字,立即抛出一个异常,会导致当前代码立即停止执行,异常将被抛給前一个方法
6、重写方法与异常
子类在重写父类方法时不能抛出比父类声明中更大或者更多的异常,如果被允许抛出更大的异常,那么编译器会认为调用的是父类方法而允许编译,但是因为动态绑定机制,调用时会调用子类方法,如果产生异常谁来处理呢?答案是没有
7、用户自定义异常
所有的异常必须是Throwable的子类,继承规则上面有。
- java学习笔记4.10
- Java学习笔记--CSS笔记
- Java学习笔记001
- Java 学习笔记
- java 学习笔记
- Java学习笔记
- java 学习笔记
- java学习笔记
- java学习笔记
- java学习笔记-1
- java虚拟机学习笔记
- java虚拟机学习笔记
- java虚拟机学习笔记
- Java学习笔记1
- Java学习笔记2
- java学习笔记(1)
- java学习笔记#2
- java学习笔记1
- 笨小熊[字符数组字符个数统计]
- Linux操作系统位数查看
- 第七周作业2(LeetCode5)
- 区间模糊排序,给出对应点集,并统计对应点所落在的区间的次数
- 性能黄金法则
- java学习笔记4.10
- linux设置代理到局域网中的主机
- 正常盒模型和怪异盒模型
- 多表查询
- 运维小白的python之路(四)
- cvSetMouseCallback使用
- Hibernate中的SessionFactoty 、Session、Configuration
- Java 数组遍历
- Python基础if __name__ == '__main__'