什么是异常(Exception)?

简述:

在运行过程中,应用程序可能遭遇各种严重程度不同的问题.异常提供了一种在不弄乱程序的情况下检查错误的巧妙方式.它也提供了一种直接报告错误的机制.

不同类型异常在Java中被封装为不同的类,这也符合我Java里一切都是对象的原则,Java为我们提供了非常完美的异常处理机制。

异常的结构图

既然是类,自然有结构关系,让我们看看这些异常类的结构组成图

JDK文档中的异常类

在JDK文档中,可以查看异常类所有介绍和使用方法



Exception 实例

常见的异常

	//2.1算数异常

	//	System.out.println(8/0);//编译通过
/*运行是输出: Exception in thread "main" java.lang.ArithmeticException: / by zero
at me.testexceptions.TestExceptions.main(TestExceptions.java:13) *///抛出java.lang.ArithmeticException异常
	int[] a={1,2,3};

	//	int b=a[3];//编译无错
/* 运行时输出
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at me.testexceptions.TestExceptions.main(TestExceptions.java:25)
*///同样是运行时抛出异常 java.lang.ArrayIndexOutOfBoundsException

Java的异常处理机制(try…catch…finally)

try 就像一个网,把try{ }里面的代码所抛出的异常都网住,然后把异常交给 catch{}里面的代码去处理。最后执行finally之中的代码。

无论try中代码有没有异常,也无论catch是否将异常捕获到,finally中的代码都一定会被执行。

	try{
int c=9/0; }catch(ArithmeticException my){
//其中my是异常对象,这个形参当系统出现错误抛出异常catch就把异常对象穿过來
System.out.println("出现异常"); //调用my的toString()方法,
System.out.println(my);//输出:java.lang.ArithmeticException: / by zero my.printStackTrace();
/*输出:
java.lang.ArithmeticException: / by zero
at me.testexceptions.TestExceptions.main(TestExceptions.java:35)
*///这个方法追踪异常的详细信息
}

Java菜鸟学习笔记--Exception篇(一):异常简介的更多相关文章

  1. Java菜鸟学习笔记--数组篇(三):二维数组

    定义 //1.二维数组的定义 //2.二维数组的内存空间 //3.不规则数组 package me.array; public class Array2Demo{ public static void ...

  2. Java菜鸟学习笔记--数组篇(二):数组实例&args实例

    基本类型实例 //1.定义一个一维数组,先声明,在分配空间 int []number;//生命,没有初始化,number=null number=new int[5];//初始化为默认值,int默认值 ...

  3. Java菜鸟学习笔记--面向对象篇(十五):Wrapper Class包装类

    什么是包装类? 在Java里一切都是对象,除了Java中的基本数据类型(byte,short,int,long,char,float,double,boolean)不是面向对象的,这在实际使用时存在很 ...

  4. Java菜鸟学习笔记--面向对象篇(十八):对象转型&多态

    Polymorphism[多态] 简述: 面向对象多态性指的是:发送消息给某个对象,让该对象自行决定响应何种行为. 通过将子类对象引用赋值给超类对象引用变量来实现动态方法调用 多态的三个前提条件: 多 ...

  5. Java菜鸟学习笔记--面向对象篇(十六):Object类方法

    Object类 什么是Object类? Object类是所有Java类的祖先,每个类都使用 Object 作为超类,所有对象(包括数组)都实现这个类的方法Object类是类层次结构的根,Object类 ...

  6. Java菜鸟学习笔记()--面向对象篇(七):Wrapper Class包装类

    什么是包装类? 在Java里一切都是对象,除了Java中的基本数据类型(byte,short,int,long,char,float,double,boolean)不是面向对象的,这在实际使用时存在很 ...

  7. java web学习笔记-jsp篇

    1.java web简介 1.1静态页面与动态页面   表现形式 所需技术 静态网页 网页内容固定,不会更新 html,css 动态网页 网页内容由程序动态显示,自动更新 html,css,DB,ja ...

  8. [原创]java WEB学习笔记47:Servlet 监听器简介, ServletContext(Application 对象), HttpSession (Session 对象), HttpServletRequest (request 对象) 监听器,利用listener理解 三个对象的生命周期

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  9. Java菜鸟学习笔记(23)--继承篇(二):继承与组合

    组合是什么 1.继承和组合都是一种随思想渗透而下的编码方式,其根本目的都是为了复用类,减少重复代码 2.要实现一个类的复用,可以分为组合语法和继承语法 3.组合就是通过将一个对象置于一个新类中,将其作 ...

随机推荐

  1. java_设计模式_策略模式_Strategy pattern(2016-07-15)

    感受:将算法从方法级别,提升到类级别.之后利用java多态,来切换不同的算法实现不同的功能. 在阎宏博士的<JAVA与模式>一书中开头是这样描述策略(Strategy)模式的: 策略模式属 ...

  2. ThinkPHP框架下,给jq动态添加的标签添加点击事件移除标签

    jq移除标签主要就是$("#要移除的id").remove();不再赘述,这里要提醒的是jq中动态添加标签后怎样添加点击事件.一般的jq添加点击事件是用这种方法$("#i ...

  3. unix-环境高级编程-读书笔记与习题解答-第三篇

    第一章 第五节 进程与控制 该小节比较粗略的阐述了unix操作系统中用于进程控制的三个函数,分别为 : fork , exec, waitpid, 其中 exec 有五种变体, 这些变体实现的功能全部 ...

  4. ALAsset和ALAssetRepresentation

    ALAsset类代表相册中的每个资源文件,可以通过它获取资源文件的相关信息还能修改和新建资源文件,ALAssetRepresentation类代表相册中每个资源文件的详细信息,可以通过它获取资源的大小 ...

  5. uboot使用tftp下载时出现“checksum bad”问题原因分析

    一.问题 二.原因分析 你的虚拟机是不是这样设置的呢? 如果是的话,请看下边的解释: 使用NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网.也就是说,使用NA ...

  6. java枚举小结

    如何定义一个枚举类? //定义了4个等级 enum Level{ A,B,C,D } 枚举类的实质: class Level{ public static final Level A = new Le ...

  7. CMD模块定义规范

    CMD 模块定义规范 在 Sea.js 中,所有 JavaScript 模块都遵循 CMD(Common Module Definition) 模块定义规范.该规范明确了模块的基本书写格式和基本交互规 ...

  8. [原创]leet code - path sum

    ;            ;                ;                            }        }        ;            }};

  9. Delphi重载,覆盖,多态

    一.override 重载 type TFigure = class procedure Draw; virtual;//(我的理解是)父类中可以使用父类的,子类中使用子类的.与“四”是有区别的. e ...

  10. iostat 使用说明

    LINUX [oracle@perass back]$ iostat -m 1 10 Linux 2.6.18-194.el5 (perass) 03/01/2014 avg-cpu: %user % ...