异常的概念:

异常(exception也称例外)就是在程序运行过程中所发生的不正常的事情,

他会终止程序的运行。

1.所需的文件找不着

2.网络连接不通或者中断

3.算数运算符的错误参数

4.数组下标越界

5.装载一个不存在的类或者null对象操作

6.类型转换异常...

当java程序出现以上异常的时候就会在所处方法中产生一个异常的对象

这个异常的对象包括异常的类型,异常出现时程序的运行状态以及该异常的详细我描述

在java程序中所有异常和error的父类是Throwable直接继承Object

error是程序本身无法恢复的严重错误

exception是程序中可以处理的异常

1.运行时异常(有可能产生也有可能不产生)

2.Check的异常(不处理编译无法通过,也叫编译时异常)

异常的处理方式之捕捉异常:

1.try -catch- finally的使用

1-try-catch组合

1--正常情况:try 及以后的代码,不执行catch

2--异常情况:出现类型和捕获类型相匹配

catch(exception e){//

e.printstackTrance();

}

再捕捉到异常的时候由java虚拟机创建对象,体现了多态,父类引用指向子类对象

Exception e = new ArithmeticException();然后继续执行以后程序,程序不会中断

3--异常不匹配情况:异常exception e不匹配,程序中断,后面程序就不在运行。

2-try-finally组合;

1--正常情况:程序正常运行,执行finally代码

2--异常情况:在执行完毕finally代码之后程序报错,程序中断

3--特殊情况不执行finally:system.exit(0);

3-try-catch-finally

1--正常情况:执行try-finally

2--异常情况:类型相匹配执行try-catch-finally 按顺序执行

3--异常情况:类型不相匹配,执行try-finally

如果catch中存在return语句则先执行完finally语句后再执行return语句(结束方法)

异常的处理方式之声明异常:(throws)

方法名的后面,用于声明该方法可能会产生一个异常,如果方法声明的

是一个Exception异常或者是checkedException异常,要求方法的调用出必须做处理

1.继续使用throws向上声明(方法的调用处)

2.使用try-catch-finally进行处理

如果方法声明但是runtimeException的异常,那么方法的调用可不处理

继承关系中的声明异常:

1.父类的方法声明了Exception类型的异常,子类再重写方法的时候,可以声明

也可以不声明,但是如果子类重写之后的方法使用super关键字调用父类的方法,

那么必须要求对异常进行处理。

2.如果父类方法没有异常,那么子类的方法如果一定要有Exception异常或者是checkedException异常

那么子类必须自己进行try-catch-finally解决或者给父类声明异常。

3.如果子类在重写父类方法是产生的是runtimeException那么也可以不用处理

throw抛出异常对象写在方法里

在捕获一个异常之前必须有一段代码先生成异常对象并把它抛出,这个过程我们

可以手工做也可以由JRE来实现,他们调用的都是Throw子句

throws与throw的区别

1.throws用于声明方法可能会产生的类型异常,throw手动抛出一个异常对象!!

2.位置不相同,throws写在方法名后面,throw用于写在方法里。

常见的异常和解决方法(加入判断)

1.运行时异常runtimeException

1-算术异常:ArithmeticException(除数不为0)

2-空指针异常:NullPointerException(没有创建对象就调用了对象的属性或方法String str=nul;)

3-类型转换异常;ClassCastException(向下类型转换Animal dog = new Dog Cat cat = (cat)dog

用instanceof判断是否属于一个类型返回boolean)

4-数组下标越界异常:ArraysIndexOutOfBoundsException(判断是否<arr.length

否则输出数组下标超出边界)

5-期望的数据类型和实际输入的类型不匹配:InputMismatchException!!!(判断输入的是否是整数

的时候用input.hasNextInt(),判断你输入的时候是否是整数)

2.检查时异常CheckedException(必须做处理n多异常的总称)

1-SQLException(throws向上声明或者使用try-catch-finally)

2-IOException(throws向上声明或者使用try-catch-finally)

3-ParseException(throws向上声明或者使用try-catch-finally)

自定义异常:

为什么要定义自定义异常?

在程序中,可能会遇到任何标准异常类都无法描述清楚的问题,这种情况下创建自己的

异常类

自定义异常的步骤:!!!

1.继承Exception或者RuntimeException

2.定义构造方法

3.使用异常

python类型转换异常捕捉_Java中的异常相关推荐

  1. java 异常 日志_java中的异常、断言、日志(一)

    1.Java异常处理i.异常的概念和Java里面的异常体系结构1)基本概念:程序中的异常,一般成为例外情况,可以理解为是非正常情况,其他编程语言里面也有这样的情况,Java里面同样存在这样一个体系结构 ...

  2. java 异常 理解_java中的异常理解

    java异常是java提供的用于处理程序中错误的一种机制. 所谓错误是指在程序运行的过程中发生的一些异常事件(如:除0溢出,数组下标越界,所要读取的文件不存在). 设计良好地程序应该在程序异常发生时提 ...

  3. Java中非法参数的异常_Java中的异常

    异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程.Java通 过API中Throwable类的众多子类描述各种不同的异常. ...

  4. java中exception作用_java中的异常Exception的划分,以及他们的特性。

    1.异常分为编译时异常(ExceptionSubclass)和运行时异常(RuntimeException): 2.编译时异常的发生概率高,而运行时异常的发生概率比较低,因此编译时在编写代码时应该处理 ...

  5. java编译异常有哪些_java 中 哪些异常必须声明并捕获,否则产生编译错误

    RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类. 可能在执行方法期间抛出但未被捕获的 RuntimeException 的任何子类都无需在 throws ...

  6. java异常面试_java中异常的面试

    https://blog.csdn.net/qq_36523638/article/details/79363652 1) Java中的检查型异常和非检查型异常有什么区别? 这又是一个非常流行的Jav ...

  7. java的异常有哪些类_Java中的异常类型有哪些

    1. java.lang.nullpointerexception 这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对 ...

  8. java常见检查异常_java中常见异常总汇,附解释

    Java Exception: 1.Error 2.Runtime Exception 运行时异常 3.Exception 4.throw 用户自定义异常 异常类分两大类型:Error类代表了编译和系 ...

  9. java 异常 中文_Java中所有的运行时异常,带中文解释

    展开全部 算术异常类:ArithmeticExecption 空指针异常类:NullPointerException 类型强制转换异常:ClassCastException 数组负下标异常:Negat ...

最新文章

  1. 从零开始学python电子书-从零开始学Python程序设计 PDF
  2. 01背包、完全背包、多重背包
  3. MIP 技术交流分享(3月15日)
  4. 追加画面文言时注意【×硬换行】与【○软换行】
  5. 中兴F803/804 ONU实现端口间计算名(基于netbios协议)互通
  6. 复旦计算机学院软件工程,2019年复旦961软件工程专硕考研初试363+复试经验分享...
  7. hive三种建表语句
  8. mysql当前时间的本月_mysql 获得当前月1号的日期 和 0点日期方法
  9. 数据路:三人行,必有我师!
  10. 第五章:电子表格系统Excel 2010——知识点整理
  11. Udacity CH2中.bag 文件解析
  12. linux下创建1G的文件,Linux/UNIX: 使用 dd 命令创建 1GB 大小的二进制
  13. 数理统计——样本分布
  14. 四年级计算机教学总结,四年级信息技术教学工作总结
  15. Chrome内核浏览器显示【您的时钟快了,您计算机的日期和时间不正确】解决办法
  16. detached entity passed to persist问题与解决方案
  17. 弱电计算机网络系统技术交底,弱电综合布线施工技术交底.doc
  18. 2022 CCF BDCI数字经济创新应用案例大赛决赛晋级名单
  19. 记STM32之PWM学习笔记 ---PWM原理
  20. Windows系统下进行NIST测试

热门文章

  1. 使用聚合的方式实现静态代理
  2. 决策树可视化,被惊艳到了!
  3. 面试官:Mysql 中主库跑太快,从库追不上怎么整?
  4. 细思恐极,插上U盘就开始执行Python代码的程序
  5. 一年毕业 5000 多博士,发 18000 多篇 SCI,这所“双非”高校实力不输清北!
  6. android addview指定位置,Android开发中,请问当在一个视图中addView另一个布局视图时为什么报错?...
  7. Python代码列主元消去法matlab编程_工业机器人用什么语言编程的?
  8. 计算机英语基础课程论文,计算机专业英语课程教学论文
  9. 树形结构:迭代方式遍历树,宽度优先,先序遍历,中序遍历,后序遍历
  10. leetcode-14-最长公共前缀