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基础——55.自定义异常类

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

JAVA_SE基础——54.异常

异常的体系: ----------| Throwable  所以异常或者错误类的超类 --------------|Error  错误   错误一般是用于jvm或者是硬件引发的问题,所以我们一般不会通...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

J2SE基础摘要——异常处理

概要异常的概念异常的分类 Error是系统的内部错误,管不了 Exception可以处理 Exception下又分两类,RuntimeException和其他Exception ...

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

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

JAVA 基础语法——开发环境以及J2SE代码实现

JDK,eclipse以及代码实现

JAVA_SE基础——42.final修饰符

高手勿喷~ final关键字可用于修饰类、变量和方法,它有“这是无法改变的”或者“最终”的含义,因此被final修饰的类、变量和方法将具有以下特征: 1.final修饰的类不能被继承。实例1 2.fi...

JAVA_SE基础——35.static修饰成员函数

在Java中适用static关键字修饰的方法称为静态方法。 声明静态方法的语法格式如下: 权限修饰符 static 数据类型 方法名(){ 方法体 } 静态方法 可以使用类名直接调用    ...

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

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

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

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

JAVA_SE基础——40.super关键字

只要this关键字掌握了,super关键字不在话下,因为他们原理都差不多的。。 this&super 什么是this,this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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