JAVA_SE基础——53.什么是异常?
尽管人人都希望自己的身体健康,处理事情都能顺利进行,
但是在实际生活中总会遇到各种状况,比如,感冒发烧,电脑突然蓝屏死机等。。程序也一样,程序在运行过程中,也会发生各种非正常状况,比如程序运行时磁盘不足,网络连接中断,被装载的类不存在。 针对这种情况,在Java语言中,引入了异常,以异常类的形式对这些非正常情况进行封装,通过异常处理机制对程序运行时发生的各种问题进行处理。。
接下来看下code1 来认识一下什么是异常。
code1
package day10;
public class TestException1 {
public static void main(String[] args){
divide(2,0);
}
public static void divide(int a , int b ){
int c = a/b ;
System.out.println("c = "+c);
}
}
运行结果:
Exception in thread "main" java.lang.ArithmeticException: / by zero
at day10.TestException1.divide(TestException1.java:8)
at day10.TestException1.main(TestException1.java:5)
从运行结果可以看出,程序发生了 算数异常(ArithmeticException),这异常是由于程序中 调用divide()方法时传入
参数0,在方法中的 int c = a/b ; 中出现了 除数为0的错误。 在这个异常发生后,程序会立即结束,无法继续向下执行。
以上code1代码中出现的异常 :算数异常(ArithmeticException) 只是Java异常类中的一种,在Java中还提供了
大量的异常类,这些类都继承自java.lang.Throwable 类。接下来我通过一张图来展示Throwable类的继承体系:
通过上图可以看出,Throwable有两个直接子类Error和Exception,其中Error代表程序中产生的错误,
Exception代表程序异常。接下来就对这两个直接子类进行详细讲解
Error类称为错误类:
它表示Java运行时产生的系统内部错误或资源耗尽的错误,是比较严重的,仅靠修改代码 修改程序本身是不能恢复执行的。举一个生活中的例子 不可治疗的病如:晚期癌症,艾滋 。。 这就相当于一个Error,使用java命令去运行一个不存在的类就会出现Error错误。如下图。
命令行窗口直接执行“java Demo11” 命令,由于虚拟机无法找到Demo11这个类,就会抛出“找不到或无法加载主类”的错误
Exception类称为异常类
它表示程序本身可以处理的错误,在开发java程序中进行的异常处理,都是针对Exception类及其子类。
而Exception类 又可以分为 :
运行时异常(非RuntimeException类其它都表示编译时异常)
编译时异常(RuntimeException)
到这里我们已经了解了Throwable类,为了后面方便的学习,接下来将Throwable类中的常用方法罗列出来:
e.toString(): 获得异常种类和错误信息
e.getMessage():获得错误信息
e.printStackTrace():在控制台打印出异常种类,错误信息和出错位置等
交流企鹅:654249738
JAVA_SE基础——53.什么是异常?的更多相关文章
- JAVA_SE基础——6.标识符&关键字
学会写helloworld之后, 我们就开始来认识标识符&关键字 一.标识符 标识符是指可被用来为类.变量或方法等命名的字符序列,换言之,标识符就是用户自定义的名称来标识类.变量或方法等.更 ...
- JAVA_SE基础——26.[深入解析]局部变量与成员变量的区别
黑马程序员入学blog ... 如果这章节很难懂的话应该返回去先看 JAVA_SE基础--10.变量的作用域 定义的位置上区别: 1. 成员变量是定义在方法之外,类之内的. 2. 局部变量是定义在方 ...
- JAVA_SE基础——9.基本数据类型间的转换
前面我已经教会大家基本的数据类型进行了介绍, 然后这篇文章,我来介绍下,基本数据类型的转换. Java中有两种类型转换形式,分别是自动类型转换和强制类型转换. Step1.自动类型转换. 自动类型 ...
- JAVA_SE基础——8.基本数据类型
基本数据类型有:整数类型.浮点类型.字符类型.布尔类型 整数类型 整数类型用来存储整数数值,即没有小数部分的数值.与C.C++语言相同,整数在Java语言中有3种表示形式:十进制.八进制和十六进制. ...
- JAVA_SE基础——7.常量&变量
上一篇,我讲了标识符&关键字 这篇我来解释下变量&常量~~~ 变量与常量这两个概念相信大家都不会感到陌生,在数学中就已经涉及了变量与常量.理解变量与常量,可以举这样一个例子: 例 ...
- JAVA_SE基础——5.第一个Java程序HelloWorld&注释的应用
配置完JDK&环境变量后,我们就可以开始写程序了,那么程序怎么写呢,用什么工具呢,我建议 为了方便学习,我们最好在一个磁盘下建立一个专门的文件来写java程序,比如就在D盘下建立一个名为&qu ...
- JAVA_SE基础——4.path的临时配置&Classpath的配置
这次,我来写下关于path的临时配置的心的 我来说个有可能的实例:如果你去到别人的电脑 又想写代码 又不想改乱别人的path配置的话 再说别人愿意你在别人的电脑上瞎配吗? 那该怎么办呢? 那没问题 ...
- JAVA_SE基础——2.环境变量的配置&测试JDK
哈喽,利用晚上的空余时间再写篇心的~~~ 谢谢大家 前一篇文章 JAVA_SE基础--JDK&JRE下载及安装http://blog.csdn.net/thescript_j/article ...
- JAVA_SE基础——1.JDK&JRE下载及安装
这是我学了JAVA来写的第一篇博客: 我首先是在传智播客领了张.毕向东老师的免费JAVA学习光盘来学习! 下面我来教大家安装使用JAVA时候必备的JDK 1.首先上甲骨文公司的官方网站下载JDK的安装 ...
随机推荐
- 魔改版ss-panel v3前端配置文件
配置文件所在目录:网站根目录/config/.config.php <?php // ss-panel v3 配置 // // !!! 修改此key为随机字符串确保网站安全 !!! $Syste ...
- Redis之List
一.Redis之List简介 1. List是简单的字符串列表,按照插入顺序排列. 2. 一个列表最多可存储232-1个元素(40多亿). 二.Redis之List命令行操作 Lrange:获取列表指 ...
- STM32F10x的启动汇编分析
;******************** (C) COPYRIGHT 2009 STMicroelectronics ********************;* File Name ...
- ADS协议变量配置界面
ADS协议是倍福产品的通信协议,在双击ADS协议图标后打开如下图的配置窗口. 变量配置表中各列的含义: 报警类型: 脚本: 当设置了报类型时,在运行时如果变量值引发报警时将执行一次脚本.例如 大于报警 ...
- 在线教育平台搭建 预览和models
一.前言 1.1.项目介绍 在线演示地址:mxonline.mtianyan.cn 开发环境: python:3.6.4 Django:2.0.2 后台管理:xadmin 系统概括: 系统具有完整的用 ...
- vc的环境变量配置和缺少mspdb60.dll的解决方法
vc的编译器是cl.exe,我们如果在vc中编译就不用配置环境,但是如果要在任何位置用命令提示符打开编译器cl.exe来编译程序,那么就要配置环境了. 下面我就讲讲vc的环境变量配置和缺少mspdb6 ...
- CMake 条件判断
CMake简介 CMake 是做什么的? CMake是一套类似于automake的跨平台辅助项目编译的工具. 我觉得语法更加简单易用. CMake的工作流程 CMake处理顶级目录的CMakeList ...
- Android开发——Fragment的简单使用总结
前言: 之前搞项目的时候,就使用了这个Fragment,中间遇到了许多坑,把坑都解决了,现在写一篇较为简单的Fragment使用总结 Fragment的简单介绍: 简单来说,Fragment其实可以理 ...
- centos7上关闭防火墙
centos7上默认开启的是+firewalld,关闭了iptables 停止防护墙: systemctl stop firewalld.service 开机不启动: systemctl disabl ...
- linux(ubuntu)环境下安装及配置JDK
安装完IDEA之后遇到了问题,发现jdk安装完之后配置环境变量好困难,下面总结一下我的安装及配置方式: JDK下载链接:http://download.oracle.com/otn-pub/java/ ...