----异常的概述-----
1.异常,就是不正常的现象,可能发生在编译期间也可能发生在运行期间
2.可能会出现不同的异常,进而在Java中对其描述封装为类--在这些异常类中抽取其共性的东西(异常发生的位置,名称等)--形成了异常体系的根类Throwable(可以抛出的异常)
3.Throwable下面分为两大子类:Exception(可以进行处理) Error(严重情况,必须对程序修改)
4.关于异常体系的一些总结
* 异常的子类后缀名是以其父类名确定的,分别以Exception、Error结尾
* 异常类的构造方法有两个,无参数、有字符串的(描述异常信息)
* 异常类的方法都是从其父类Throwable中继承的
* 异常体系的出现将异常发生与异常的处理分开,使得代码具有阅读性

-----异常处理的具体过程描述------两种情况
1.对于Java已经定义的异常类其过程如下:
eg:前提调用情况 JVM掉用main-->main调用method(method发生下标越届)
main进栈-->mthod进栈-->执行到异常发生的地方且JVM自动识别出该异常并封装该对象
将其抛出throw new IndexOutOfBoundsException();
将异常对象抛给调用者main,method出栈,main接受到异常对象并不处理
将该异常对象传递给JVM,main出栈JVM打印出异常对象的相关信息(类型,发生位置)
注意事项:
发生异常后就不会按照正常流程执行程序,而是会按照异常处理执行程序
异常具有能够结束函数执行的功能--原因是问题发生所以停止
异常信息的打印:按照函数出栈的顺序打印
异常的抛出,会抛出给调用者,调用者如果不处理,就会继续向上直到JVM,打印异常信息,此时程序就是真正的停止
除了JVM自动识别抛出异常,当然也可以手动的抛出异常对象
异常一般的处理流程:问题方法发生异常--出栈--调用者处理/交给上层处理/JVM
真实开发不会直接打印异常的信息,而是会将异常信息全部存储在一个文件里面--日志,开发者会对日志进行定期的查看,并集中的根据异常的情况,对程序进行修改和维护

2.对于Java中未进行定义的异常事件可以进行自定义异常
----怎样进行自定义异常----
必须继承异常体系,这样才有资格被抛出,进而被JVM识别
对于发生异常的方法本身必须在函数上进行声明异常对象,在函数内部对异常对象进行抛出
对于调用者可以有两种处理方式(假设该异常是必须检验的异常):
*声明异常,自己不进行处理--继续向上抛给JVM
*,接收异常对象,处理异常

----关于Exception类子类的划分----两大类
* RuntimeException及其子类:编译器不检测的异常,可以不声明,编译也可以通过
* 其他的Excetion异常类的子类:编译器必须检测的异常,必须进行声明,否则编译不通过

----关于自定义异常类继承谁为其父类-----
* 因为调用者导致以及其他情况下引起的内部状态改变的时候应该定义为运行时异常,通常会让调用者对代码进行修改
* 其他的情况一般就直接定义为Exception类的子类--可以提前的给出相应的解决办法
* 以后开发中更多遇见的是运行时异常(正在运行然后中断),而Error直接就是JVM无法工作
----throws throw区别----
* throws用于在方法上进行声明异常对象,可以同时声明多个异常对象
* throw 用于在方法内部抛出异常对象,一次只可以抛出一个异常对象

-----异常的捕获-----
1.利用try{可能发生异常的代码;}catch(异常类型 异常名){异常处理过程}finally{一定会被执行的语句}结构进行异常处理
2.异常处理的基本原则
* 函数内容如果抛出必检验的异常,函数必须先声明,在利用try-catch处理/继续声明抛出
* 对于发生的异常可以处理用catch,不可以处理就throws向调用者说明
* 一个功能抛出多个异常,必须用对应的catch块进行接收异常对象并做出处理(一般先捕获小的异常再捕获大的异常),实际过程中并不会进行超出异常对象个数的捕获
* finally语句作用--一定会被执行的代码
用于数据库连接,查询,关闭资源连接等
* 假如调用者接收到异常对象也处理不了,可以在catch中继续抛出该异常对象给上级

----异常处理的注意事项------
1.子类在覆盖父类方法时候,父类方法如果抛出异常,子类重写的方法只能抛出父类抛出的异常类或其子类
2.父类如果抛出多个异常,子类只能抛出父类异常类个数的子集
3.父类方法没有发生异常,覆盖的时候子类只能自己处理,不能向外抛出异常

Java基础总结--异常处理机制的更多相关文章

  1. 黑马程序员——JAVA基础之异常处理机制

    ------- android培训.java培训.期待与您交流! ---------- 异常:就是程序在运行时出现不正常情况. 异常由来:问题也是现实生活中一个具体的事物,也可以通过java的类的形式 ...

  2. Java基础(四)-异常处理机制及其设计

    本篇主要是记录自己所理解的Java异常处理机制(基于jdk1.7)以及怎么去处理和设计异常.还记得当初学习Java异常这块的时候都没怎么注意它的用途,以为就是简单的处理下异常,我避免程序出现这样错误就 ...

  3. Java基础之异常处理机制

    在Java中,异常分为编译时异常和运行时异常. 编译时异常又叫编译时被监测的异常:在程序编译过程中监测到非运行时异常的异常,出现该异常要么向上抛出,要么捕获处理.运行时异常(runtimeExcept ...

  4. Java 中的异常处理机制

    生活中的异常:  不能够完整而顺利的完成一些工作 根据不同的异常进行相应的处理,而不会就此终端我们的生活 引出:  异常处理: 方式:  1.选择结构(逻辑判断)避免 demo:if逻辑处理异常 im ...

  5. Java基础:异常机制

    最近开始了找工作的面试,在面试过程中,面试官问了关于Java当中的异常处理机制,一直以来,无论写代码还是看书,自己对异常处理这一块就没有很好的重视过,对它的认知也仅仅停留在通过Try-catch去进行 ...

  6. 【Java基础】异常处理

    异常处理 异常概述 在 Java 语言中,将程序执行中发生的不正常情况称为"异常",但是开发过程中的语法错误和逻辑错误不是异常. 在执行过程中所发生的异常事件可分为两类: Erro ...

  7. Java中的异常处理机制的简单原理和应用?

    程序运行过程中可能出现各种"非预期"情况,这些非预期情况可能导致程序非正常结束. 为了提高程序的健壮性,Java提供了异常处理机制: try { s1... s2... s3... ...

  8. Java中的异常处理机制《》

    异常机制已经成为判断一门编程语言是否成熟的标准,异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性. Java异常机制主要依赖于try.catch.finall ...

  9. 16、java中的异常处理机制

    异常:就是程序在运行时出现不正常情况.异常由来:问题也是现实生活中一个具体的事物,也可以通过java的类的形式进行描述.并封装成对象. 其实就是java对不正常情况进行描述后的对象体现. 对于问题的划 ...

随机推荐

  1. Linux入门_2-基础命令

    Linux入门-基础命令 目录 日期命令date 修改时区 日历命令cal 关机启动命令halt,reboot,poweroff whoami.who.who am i.w screen ...

  2. Exception in thread "main" org.hibernate.MappingException: You may only specify a cache for root

    如果出现类似下面的错误: Exception in thread "main" org.hibernate.MappingException: You may only speci ...

  3. Oracle SQL*Plus 数据备份为 sql 文件

    在某些比较严格的环境中,不提供像PL/SQL Developer 这样的工具供我们备份表数据时,使用SQL*Plus运行如下脚本内容导出数据. 1,  执行时登录SQL*Plus,  命令   @D: ...

  4. Zabbix通过SNMP监控多核CPU使用率时, 计算CPU平均使用率

    环境:没有Agent,只能通过SNMP监控时,需要获取多核CPU的平均使用率. ZABBIX的使用SNMP监控CPU使用率时,由于设备都是多核CPU,监控的都是单独某一核心的使用率,但单独某一核使用率 ...

  5. A glimpse of Support Vector Machine

    支持向量机(support vector machine, 以下简称svm)是机器学习里的重要方法,特别适用于中小型样本.非线性.高维的分类和回归问题.本篇希望在正篇提供一个svm的简明阐述,附录则提 ...

  6. hdu1356&hdu1944 博弈论的SG值(王道)

    S-NimProblem DescriptionArthur and his sister Caroll have been playing a game called Nim for some ti ...

  7. An Introduction to Variational Methods (5.2)

    我们现在已经得到了关于潜在变量Z的优化分布的表达形式: ‍ 其中: ‍ 所以现在我们可以得到Z的期望: ‍ 另外对于Z还值得一提的是,我们从其优化分布的表达式中可以看出,各个Z的组成部分之间还是相互耦 ...

  8. 关于python中的pickle函数

    8-7参考阅读 - 读文件.写文件.异常处理.文件保存游戏.pickle数据转成文本的过程又被称为"序列化",即将对象状态转换为可保持或传输的格式的过程.对应的,从序列化的格式中解 ...

  9. python之爬虫

    一.从网页爬下字符串清除特殊字符 import re def validateTitle(title): rstr = r"[\/\\\:\*\?\"\<\>\|\t] ...

  10. 扩展jquery.validate自定义验证,自定义提示,本地化

    <!DOCTYPE html> <html> <head> <meta name="viewport" content="wid ...