`
cakin24
  • 浏览: 1335136 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论
阅读更多

一 Java常见的异常类之间的继承关系



1 从图中可以看出,Java把所有非正常情况分成两种:异常(Exception)和错误(Error),它们都继承Throwable父类。

2 Err错误,一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,动态链接失败等,这种错误无法恢复或不可能捕获,将导致应用程序中断,通常应用程序无法处理这些错误,因此应用程序不应该使用catch块来捕获Error对象。在定义该方法时,也无须在其throws子句中声明该方法可能抛出Error及任何子类。

 

二 异常捕获示例1

1 代码示例

 

public class DivTest
{
	public static void main(String[] args)
	{
		try
		{
			int a = Integer.parseInt(args[0]);
			int b = Integer.parseInt(args[1]);
			int c = a / b;
			System.out.println("您输入的两个数相除的结果是:" + c );
		}
		catch (IndexOutOfBoundsException ie)
		{
			System.out.println("数组越界:运行程序时输入的参数个数不够");
		}
		catch (NumberFormatException ne)
		{
			System.out.println("数字格式异常:程序只能接受整数参数");
		}
		catch (ArithmeticException ae)
		{
			System.out.println("算术异常");
		}
		catch (Exception e)
		{
			System.out.println("未知异常");
		}
	}
}

2 运行结果

E:\test\Java\Java8\ExceptionTEST\src>java 8 1
错误: 找不到或无法加载主类 8

E:\test\Java\Java8\ExceptionTEST\src>java DivTest 8 1
您输入的两个数相除的结果是:8

E:\test\Java\Java8\ExceptionTEST\src>java DivTest 8 1 3
您输入的两个数相除的结果是:8

E:\test\Java\Java8\ExceptionTEST\src>java DivTest 8
数组越界:运行程序时输入的参数个数不够

E:\test\Java\Java8\ExceptionTEST\src>java DivTest 8 d
数字格式异常:程序只能接受整数参数

E:\test\Java\Java8\ExceptionTEST\src>java DivTest 8 0
算术异常

3 结果分析

上面程序针对3种类型的异常,提供了专门的异常处理逻辑。

 

三 NullPointerException异常

1 代码示例

import java.util.*;

public class NullTest
{
	public static void main(String[] args)
	{
		Date d = null;
		try
		{
			System.out.println(d.after(new Date()));
		}
		catch (NullPointerException ne)
		{
			System.out.println("空指针异常");
		}
		catch(Exception e)
		{
			System.out.println("未知异常");
		}
	}
}

2 运行结果

空指针异常

3 结果分析

上面程序针对NullPointerException异常提供了专门的异常处理块。上面的程序调用一个null对象的after方法,这将引发NullPointerException异常,Java运行时将会调用NullPointerException对应的catch块来处理该异常。

 

四 异常捕获顺序问题

1 代码示例

		try
		{
			System.out.println(d.after(new Date()));
		}
		catch(Exception e)
		{
			System.out.println("未知异常");
		}
		catch (NullPointerException ne)
		{
			System.out.println("空指针异常");
		}

2 结果分析

上面代码编译无法通过,因为将大异常放在了小异常的前面,应该放在后面。

3 小结

异常捕获时,一定要记住先捕获小异常,再捕获大异常。

  • 大小: 57.8 KB
分享到:
评论

相关推荐

    java常见面试题(史上最全最经典)

    基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io的语法,虚拟机方面的语法。历年常见面试题型,涵盖Java基础,javase,spring,srpingmvc,...

    java常见面试题(史上最全最经典-希望对你有用).基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的

    基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io的语法,虚拟机方面的语法。历年常见面试题型,涵盖Java基础,javase,spring,srpingmvc,...

    java常见面试题(史上最全最经典-希望对你有用)

    java常见面试题(史上最全最经典-希望对你有用).基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io的语法,虚拟机方面的语法。

    Java常见面试题.pdf

    Java常见面试题: 1. 什么是 Java?它的特点是什么? 2. 解释面向对象编程(OOP)的概念和特点。 3. Java 中的基本数据类型有哪些? 4. 什么是类和对象?它们之间有什么关系? 5. 如何创建和实例化对象? 6. 解释 ...

    Java常见的面试程序题

    有Java的常见面试题的冒泡,常见的算法,继承,多态 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,...

    java基础教程.pdf

    全书共分11章:Java语言概述、Java语言基础、类与对象、继承与接口、数组与字符串、Java的异常处理机制、Java常见类库、输入输出及数据库操作、多线程、Applet程序及应用和图形用户界面设计。  本书内容实用,结构...

    常见的java面试题及解答

    以下是几个常见的Java面试题: Java中的多态是如何实现的? 多态在Java中是通过继承和接口来实现的。继承允许子类继承父类的方法和属性,同时可以重写父类的方法,从而实现多态。接口则允许不同的类通过实现同一个...

    毕业就业-刷题库Java面试题大全(2021年-2022年).rar

    a面试大全2021是一套最新Java面试必问合集,这本面试...11. Java常见异常有哪些 四、并发编程面试题 1、基础知识 2、并发理论 3、并发关键字 4、Lock体系 5、并发容器 6、线程池 7、原子操作类 8、并发工具 未完待续

    java编程宝典

    目 录 1界面 1 1.1 JComboBox用法 1 1.2 JRadioButton用法 1 1.3 JCheckBox用法 1 1.4 JList用法 2 1.5 JTable用法 3 1.6 JPanel绘制背景图 4 2数据库 5 2.1 增 8 ...3.Java常见异常 45 8面向对象 48

    java面试常见问题.docx

    请解释Java中的封装、继承和多态的概念是什么? Java中的访问修饰符有哪几种?它们的区别是什么? 请解释Java中的抽象类和接口的概念及区别是什么? 请解释Java中的泛型(Generic)是什么?它有什么作用? Java中的...

    Java2实用教程.rar

    第13章常见数据结构的Java实现 13 1链表 13 2栈 13 3树集 13 4树映射 13 5散列集 13 6散列表 13 7向量 习题 第14章图形与图像 14 1绘制文本 14 2绘制基本图形 14 3建立字体 14 4清除 14 5Java2D 14 6图形的布尔运算 ...

    Java程序员面试宝典

    java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类 3、int 和 Integer 有什么区别 Java 提供两种不同的类型:引用类型和原始类型(或内置...

    Java 基础核心总结 +经典算法大全.rar

    抽象类异常 认 识 Exception 什么是 Throwable 常见的 Exception 与 Exception 有关的 Java 关键字 throws 和 throw try 、finally 、catch 什么是 Error 内部类 创建内部类集合 Iterable 接口顶层接口 ArrayList ...

    java初学者必看

    12.3 Java异常类 12.3.1 异常类层次结构 12.3.2 异常处理方法 12.4 异常捕获 12.4.1 异常捕获处理语句块 12.4.2 必须执行语句块 12.4.3 必须执行语句的意外 12.5 异常抛出 12.5.1 异常抛出概念 12.5.2 ...

    JAVA基础课程讲义

    字符串(java.lang.String类)的使用 90 字符串相等的判断 92 思考作业 93 上机作业 94 第四章 异常机制 95 导引问题 95 异常(Exception)的概念 96 异常分类 96 Error 97 Error和Exception的区别 97 Exception 97 ...

    java核心技术第八版源代码(全)

    1.5 关于Java的常见误解 第2章 Java程序设计环境 第3章 Java基本的程序设计程序 第4章 对象与类 第5章 继承 第6章 接口与内部类 第7章 图形程序设计 第8章 事件处理 第9章 Swing用户界面组件 第10章 部署应用程序和...

    Java基础知识点总结.docx

    无论是工作学习,不断的总结是必不可少的。只有不断的总结,发现问题,弥补不足,才能长久的...java.util.concurrent.locks包下常用的类 326 NIO(New IO) 327 volatile详解 337 Java 8新特性 347 Java 性能优化 362

    JAVA面试题最全集

    一、Java基础知识 1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,... Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() ...

    java包与接口实验报告

    包与接口实验报告 实验 包与接口 【实验目的】 1. 了解Java 中包(package)、接口(interface)的作用。...接口解决了Java 不支持多重继承的问题,可以通过实现多个接口达到与多重继承相同的功能。

Global site tag (gtag.js) - Google Analytics