JAVA_SE基础——53.什么是异常?

原创 2015年11月18日 22:10:21


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

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

异常的体系: ----------| Throwable  所以异常或者错误类的超类 --------------|Error  错误   错误一般是用于jvm或者是硬件引发的问题,所以我们一般不会通...
  • ThesCript_j
  • ThesCript_j
  • 2015年11月22日 23:39
  • 1220

JAVA_SE基础——55.自定义异常类

在Java中已经提供了大量的异常类,但是这些异常类有时野很难满足开发者的要求,所以用户可以根据自己的需要来定义自己的异常类。但自定义的异常类必须继承自Exception或其子类。 可以自定义...
  • ThesCript_j
  • ThesCript_j
  • 2015年11月23日 20:07
  • 1344

J2SE基础摘要——异常处理

概要异常的概念异常的分类 Error是系统的内部错误,管不了 Exception可以处理 Exception下又分两类,RuntimeException和其他Exception ...
  • rufanfou
  • rufanfou
  • 2015年05月03日 16:38
  • 172

Java SE 基础概述(二)异常处理

设计一个严谨的程序是一项繁琐的工作。各种各样的情况都应当被充分考虑。如果不采用异常处理方法,而按照一般的程序设计方法,则基本上只能逐个分析在程序中可能出现的各种异常情况,并在程序的相应位置立即作出适当...
  • u014145622
  • u014145622
  • 2015年04月27日 18:00
  • 400

Java基础学习总结(53)——HTTPS 理论详解与实践

前言 在进行 HTTP 通信时,信息可能会监听、服务器或客户端身份伪装等安全问题,HTTPS 则能有效解决这些问题。在使用原始的HTTP连接的时候,因为服务器与用户之间是直接进行的明文传输,导致了用...
  • u012562943
  • u012562943
  • 2016年04月23日 10:37
  • 2314

Java初学(六)——J2SE之面向对象编程5(异常处理)

一、异常处理 1、 定义:Java异常是指Java提供的用于处理程序中错误的一种机制,错误是指运行期出现的一些异常事件(如:除0溢出,数组下标越界,所要读取的文件不存在)。 注意:观察错误的名字和行号...
  • u010631955
  • u010631955
  • 2013年10月06日 20:46
  • 476

JAVA_SE基础——37.main方法的详解

主函数 大家都会写吧。    大家一直都不知道为何这样设计,这样设计有什么好处呢? 白话解释: main函数的修饰符是public: 公共的    为何不用private 等等的修饰符 而规定只用...
  • ThesCript_j
  • ThesCript_j
  • 2015年10月02日 22:16
  • 535

JAVA_SE基础——47.接口

如果一个抽象类中的所有方法都是抽象的,则可以将这个类用另一种方法来定义,即 接口~ 在定义接口时,需要用interface关键字来声明,具体实例如code1 接口的定义格式: interfac...
  • ThesCript_j
  • ThesCript_j
  • 2015年10月26日 22:33
  • 1275

Java SE《基础篇》——(五)数组02

上一节我们介绍了一下数组的特性和基本使用。这一课时我们重点在讲解数组的排序、数组查找。我们都知道数组是一种简单的数据结构。它采用连续存储的方式保存数据,那么问题来了? 1. 我们想得到一个有顺序...
  • qq_15014327
  • qq_15014327
  • 2018年01月03日 01:11
  • 28

Java SE《基础篇》——(四)数组01

数组 一维数组 二维数组
  • qq_15014327
  • qq_15014327
  • 2017年12月31日 11:12
  • 49
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA_SE基础——53.什么是异常?
举报原因:
原因补充:

(最多只允许输入30个字)