尽管人人都希望自己的身体健康,处理事情都能顺利进行,

但是在实际生活中总会遇到各种状况,比如,感冒发烧,电脑突然蓝屏死机等。。程序也一样,程序在运行过程中,也会发生各种非正常状况,比如程序运行时磁盘不足,网络连接中断,被装载的类不存在。 针对这种情况,在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.什么是异常?的更多相关文章

  1. JAVA_SE基础——6.标识符&关键字

    学会写helloworld之后,  我们就开始来认识标识符&关键字 一.标识符 标识符是指可被用来为类.变量或方法等命名的字符序列,换言之,标识符就是用户自定义的名称来标识类.变量或方法等.更 ...

  2. JAVA_SE基础——26.[深入解析]局部变量与成员变量的区别

    黑马程序员入学blog ... 如果这章节很难懂的话应该返回去先看  JAVA_SE基础--10.变量的作用域 定义的位置上区别: 1. 成员变量是定义在方法之外,类之内的. 2. 局部变量是定义在方 ...

  3. JAVA_SE基础——9.基本数据类型间的转换

    前面我已经教会大家基本的数据类型进行了介绍,   然后这篇文章,我来介绍下,基本数据类型的转换. Java中有两种类型转换形式,分别是自动类型转换和强制类型转换. Step1.自动类型转换. 自动类型 ...

  4. JAVA_SE基础——8.基本数据类型

    基本数据类型有:整数类型.浮点类型.字符类型.布尔类型 整数类型 整数类型用来存储整数数值,即没有小数部分的数值.与C.C++语言相同,整数在Java语言中有3种表示形式:十进制.八进制和十六进制. ...

  5. JAVA_SE基础——7.常量&变量

    上一篇,我讲了标识符&关键字    这篇我来解释下变量&常量~~~ 变量与常量这两个概念相信大家都不会感到陌生,在数学中就已经涉及了变量与常量.理解变量与常量,可以举这样一个例子: 例 ...

  6. JAVA_SE基础——5.第一个Java程序HelloWorld&注释的应用

    配置完JDK&环境变量后,我们就可以开始写程序了,那么程序怎么写呢,用什么工具呢,我建议 为了方便学习,我们最好在一个磁盘下建立一个专门的文件来写java程序,比如就在D盘下建立一个名为&qu ...

  7. JAVA_SE基础——4.path的临时配置&Classpath的配置

    这次,我来写下关于path的临时配置的心的 我来说个有可能的实例:如果你去到别人的电脑 又想写代码 又不想改乱别人的path配置的话  再说别人愿意你在别人的电脑上瞎配吗? 那该怎么办呢? 那没问题 ...

  8. JAVA_SE基础——2.环境变量的配置&测试JDK

    哈喽,利用晚上的空余时间再写篇心的~~~  谢谢大家 前一篇文章 JAVA_SE基础--JDK&JRE下载及安装http://blog.csdn.net/thescript_j/article ...

  9. JAVA_SE基础——1.JDK&JRE下载及安装

    这是我学了JAVA来写的第一篇博客: 我首先是在传智播客领了张.毕向东老师的免费JAVA学习光盘来学习! 下面我来教大家安装使用JAVA时候必备的JDK 1.首先上甲骨文公司的官方网站下载JDK的安装 ...

随机推荐

  1. [BZOJ2733] [HNOI2012] 永无乡 (splay启发式合并)

    Description 永无乡包含 n 座岛,编号从 1 到 n,每座岛都有自己的独一无二的重要度,按照重要度可 以将这 n 座岛排名,名次用 1 到 n 来表示.某些岛之间由巨大的桥连接,通过桥可以 ...

  2. Micropython Turnipbit 换挡风扇 旋转按钮控制直流电机转速

    学过物理学的我们都知道换挡风扇的原理,一般按钮控制电感分压或者电容分压,以达到控制电流的目的.那么我们可不可以使用Turnipbit模拟这个系统呢?其实是很简单的.类似于之前用Tpyboard做的智能 ...

  3. ASP.NET Core 一步步搭建个人网站(7)_Linux系统移植

    摘要 考虑我们为什么要选择.NET Core? 因为它面向的是高性能服务器开发,抛却了 AspNet 的臃肿组件,非常轻量,加上微软的跨平台战略,对 Docker 的亲和性,对于开发人员也非常友好,所 ...

  4. C# 登录 存Session ,cookie并且验证只能一个人登录以及清session并且Cache

    string id = ConvertHelper.GetString(ds.Tables[0].Rows[0]["Uid"]);//用户ID string struserid = ...

  5. windows系统安装jira

     主题介绍 JIRA是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪.客户服务.需求收集.流程审批.任务跟踪.项目跟踪和敏捷管理等工作领域,其配置灵活.功能全面.部署简单.扩展丰 ...

  6. ASP.NET Core Web 支付功能接入 微信-扫码支付篇

    这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入微信-扫码支付及异步通知功能. 开发环境:Win 10 x64.VS2017 15.6.4..NET Core SDK ...

  7. mybatis动态insert,update

    1. 动态update UPDATE ui.user_question_section_xref <set> reviewer = #{0}, score = #{1} , last_up ...

  8. 笔记:Maven 私服 Nexus 权限控制

    Nexus 用户 Nexus 预定义了三个用户,这三个用户对应了三个权限级别: admin:该用户拥有对Nexus服务的完全控制,默认密码为 admin123,以下为admin用户的角色树 deplo ...

  9. Algorithm --> 求阶乘末尾0的个数

    求阶乘末尾0的个数 (1)给定一个整数N,那么N的阶乘N!末尾有多少个0?比如:N=10,N!=3628800,N!的末尾有2个0. (2)求N!的二进制表示中最低位为1的位置. 第一题 考虑哪些数相 ...

  10. PHP对大小写敏感问题

    1. 变量名区分大小写 1 <?php 2 $abc = 'abcd'; 3 echo $abc; //输出 'abcd' 4 echo $aBc; //无输出 5 echo $ABC; //无 ...