异常

异常:异常就是Java程序在运行过程中出现的错误。

异常由来:问题也是现实生活中一个具体事务,也可以通过java 的类的形式进行描述,并封装成对象。

其实就是Java对不正常情况进行描述后的对象体现。

Throwable

|--Error        严重问题,我们不处理。

|--Exception

|--RuntimeException        运行期异常,我们需要修正代码

|--非RuntimeException 编译期异常,必须处理的,否则程序编译不通过

Exception和Error的子类名都是以父类名作为后缀。

Java中的异常被分为两大类:编译时异常和运行时异常。

所有的RuntimeException类及其子类的实例被称为运行时异常,其他的异常就是编译时异常

编译时异常

•Java程序必须显示处理,否则程序就会发生错误,无法通过编译

运行时异常

•无需显示处理,也可以和编译时异常一样处理

Throwable基本方法

getMessage()

•获取异常信息,返回字符串。

toString()

•获取异常类名和异常信息,返回字符串。

printStackTrace()

•获取异常类名和异常信息,以及异常出现在程序中的位置。返回值void。

printStackTrace(PrintStream s)

•通常用该方法将异常内容保存在日志文件中,以便查阅。

throws和throw

throws

•用在方法声明后面,跟的是异常类名

•可以跟多个异常类名,用逗号隔开

•表示抛出异常,由该方法的调用者来处理

•throws表示出现异常的一种可能性,并不一定会发生这些异常

throw

•用在方法体内,跟的是异常对象名

•只能抛出一个异常对象名

•表示抛出异常,由方法体内的语句处理

•throw则是抛出了异常,执行throw则一定抛出了某种异常

异常处理过程

 

JVM的默认处理

把异常的名称,原因,位置等信息输出在控制台,但是程序不能继续执行了。

自己处理

try...catch...finally

自己编写处理代码,后面的程序可以继续执行

throws

把自己处理不了的,在方法上声明,告诉调用者,这里有问题

try

{

需要检测的代码;

}

catch

(异常类  变量)

{

异常处理代码;

}

finally

{

一定会执行的代码;

}

Finally代码块控制的语句体一定会执行

只有一种情况不会被执行。就是在之前执行了System.exit(0)。

主要用于释放资源

常见变形形式

try...catch...finally

try...catch...

try...catch...catch...

try...catch...catch...fianlly

try...finally

自定义异常

自定义类继承Exception或者其子类,只需要提供无参构造和一个带参构造即可

通过构造函数定义异常信息。

例:

Class DemoException extends Exception{DemoException(String message){super(message);}}

通过throw将自定义异常抛出。

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

1.父的方法有异常抛出,子的重写方法在抛出异常的时候必须要小于等于父的异常,也就是必须抛出相同的异常或异常的子类

2.父的方法没有异常抛出,子的重写方法不能有异常抛出,如果子类方法内有异常发生,那么子类只能try,不能throws

3.父的方法抛出多个异常,子的重写方法必须比父少或者小,不能抛出新的异常

-1-6 java 异常简单介绍 java异常 异常体系 Throwable 分类 throws和throw 异常处理 自定义异常...相关推荐

  1. java enumerator_简单介绍java Enumeration

    Enumeration接口 Enumeration接口本身不是一个数据结构.但是,对其他数据结构非常重要. Enumeration接口定义了从一个数据结构得到连续数据的手段.例如,Enumeratio ...

  2. 简单介绍Java中Comparable和Comparator

    转载自 简单介绍Java中Comparable和Comparator Comparable 和 Comparator是Java核心API提供的两个接口,从它们的名字中,我们大致可以猜到它们用来做对象之 ...

  3. java ear包_简单介绍Java 的JAR包、EAR包、WAR包区别

    原标题:简单介绍Java 的JAR包.EAR包.WAR包区别 WAR包 WAR(Web Archive file)网络应用程序文件,是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件.War专 ...

  4. Java语言的介绍,Java环境的配置以及Java编译器的安装

    Java语言的介绍,Java环境的配置以及Java编译器的安装 文章目录 Java语言的介绍,Java环境的配置以及Java编译器的安装 Java 简介 主要特性 关于语言的选择 Python Jav ...

  5. Java异常简单介绍

    本文收录在猪哥GitHub:https://github.com/pig6/Java 中,本项目收集一线大厂面试.实战.Java学习路线等. 一.异常产生的原理 JVM针对程序运行监测出的异常创建个异 ...

  6. java编译时注解_简单介绍 Java 中的编译时注解

    1. 前言 上一篇 主要介绍了什么是 注解 (Annotation) 以及如何读取 运行时注解 中的数据, 同时用注解实现了简单的 ORM 功能. 这次介绍另一部分: 如何读取 编译时注解 ( Ret ...

  7. 【西行】Java 编程语言简单介绍

    J3 - 白起 Java(Java发展史 # 笔记) 1.Java 发展史 Java 语言的诞生并不是精心策划.制作,最后产生出来的,因为当时的开发者并没有想创造出世界上 如此伟大的编程语言之一. 时 ...

  8. java castor_Castor简单介绍

    本节摘要:本节主要介绍Castor插件的使用. preparation 1.castor简介 castor是一种将java对象和XML自动绑定的开源软件.它可以在java对象.XML文本.SQL数据表 ...

  9. Java是什么意思-给想要了解Java的朋友介绍Java

    90后或者00后小时候如果用国产山寨机下过游戏的,想必会经常看见游戏开始页面上会有一个Java的字样和一杯咖啡的LOGO.许多人会比较好奇,Java是什么意思?长大之后或许听说过Java是一种编程语言 ...

最新文章

  1. python解多项式方程_python – SymPy不能求解四阶多项式方程
  2. java字符编码问题_java 字符编码问题
  3. win8安装11gR2[INS-13001] 环境不满足最低要求
  4. Oracle 创建及调用存储过程,脚本示例
  5. NYOJ 359 Delete it 字符串处理
  6. 服务拆分-案例Demo
  7. 4位加法器的设计代码verilog_HDLBits:在线学习Verilog(六 · Problem 25-29)
  8. 第五十四期:MongoDB与MySQL:如何选择
  9. Fail-fast 和 Fail-safe 机制
  10. 荣耀x10max能不能升级为鸿蒙,荣耀终于放出大招!4部荣耀旗舰可升级鸿蒙,网友:终于等到了...
  11. VMware Pro 14.1.2 官方正式版及激活密钥
  12. 使用数组操作解码YOLO Core ML对象检测(三)
  13. python运维脚本部署jdk_Python+PyDev+Jdk+Eclipse开发环境部署
  14. iOS性能优化的几个方向
  15. Arduino_Core_STM32---pinMode()实现分析
  16. html实现分级目录线,jQuery 实现支持分级标题标签的文章目录
  17. %几.几//C语言(闲的没事,记录下)
  18. 初识中间件Kafka
  19. Web,Servlet,网络复习,超全,快来看
  20. 使用fasttext实现文本处理及文本预测

热门文章

  1. 学习python/pytorch过程中遇到的知识点
  2. Vi下编辑和退出编辑方法
  3. php技术创新:利用动态404页面实现全站自动静态化
  4. Android学习之RecyclerView的使用
  5. chrome版本更新后,chromedriver对应版本更新
  6. web前端如何做注册页面
  7. IKAnalyzer如何自定义远端词库
  8. DoTween延时办法
  9. 5.2 中心极限定理
  10. [电路]10-支路电流法