java中的异常类型以及区别????
一、引言
根据JDK的文档我们能够找到异常所在的包:java.lang.Throwable中,Throwable是所有异常类的根类,error是错误,在java.lang.error中,而Exception是异常在java.lang.exception中能够找到
二、error概述
当发生error类错误的时候,我们需要联想到该错误的原因大多数都是跟虚拟机有关的问题,例如内存不够、虚拟机错误等信息。对于这些错误信息导致程序中断停止、这种行为仅靠修改代码本身是无法进行修复的,更多的建议是将程序终止。
三、Exception概述
当发生Exception时,程序本身可以自身处理异常,这是与error的本质的区别,发生error错误时自身无法去处理这个错误。
Exception有很多子类,所以查看JDK文档可以得出Exception异常又可以分为Runntime exception 和 其他异常:
- RuntimeException异常发生时,一定是写的代码出现了问题、比如数组越界没有考虑到、空指针异常没有考虑到等这些信息,所以不需要通过throws处理,可以直接抛出去,抛出去后不要求调用者进行处理,故调用者可以处理也可以不处理,如果不处理就会一直往上抛,最后会抛给虚拟机去停止当前的线程
- 其他异常发生时,我们在执行代码可以将此异常进行捕获(try-catch)或者将此异常抛出(throws),所以一旦抛出,就要求调用者必须处理
常见的异常类型:
ArrayIndexOutOfBoundsException 数组下标越界异常,
ClassNotFoundException 类型不存在
NullPointerException 空指针异常
IllegalArgumentException 不合法参数异常
java中的异常类型以及区别????的更多相关文章
- java中的异常体系?throw和throws的区别?
一.java中的异常体系 Thorwable类(表示可抛出)是所有异常和错误的超类,两个直接子类为Error和Exception,分别表示错误和异常.其中异常类Exception又分为运行时异常(Ru ...
- Java 中的异常
前段时间集合的整理真的是给我搞得心力交瘁啊,现在可以整理一些稍微简单一点的,搭配学习 ~ 突然想到一个问题,这些东西我之前就整理过,现在再次整理有什么区别嘛?我就自问自答一下,可能我再次整理会看到不一 ...
- Java 中的异常和处理详解
Java 中的异常和处理详解 原文出处: 代码钢琴家 简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误 ...
- 夯实Java基础系列10:深入理解Java中的异常体系
目录 为什么要使用异常 异常基本定义 异常体系 初识异常 异常和错误 异常的处理方式 "不负责任"的throws 纠结的finally throw : JRE也使用的关键字 异常调 ...
- java中error和exception的区别
转自:https://www.jianshu.com/p/e8bbee3c1c4a Error类和Exception类的父类都是throwable类,他们的区别是: Error类一般是指与虚拟机相关的 ...
- Java中的集合类型体系(一)
Java中的集合类型体系(一) 提问:为什么需要集合? 通常情况下,程序需要根据运行时才知道创建了多少对象.若非程序运行时,而在开发阶段,我们并不知道创建了多少对象,甚至不知道对象的准确类型,为了满足 ...
- 【Java心得总结二】浅谈Java中的异常
作为一个面向对象编程的程序员对于 下面的一句一定非常熟悉: try { // 代码块 } catch(Exception e) { // 异常处理 } finally { // 清理工作 } 就是面向 ...
- 转:Java中abstract和interface的区别
转自:Java中abstract和interface的区别 abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java ...
- Java中的异常-Throwable-Error-Exception-RuntimeExcetpion-throw-throws-try catch
今天在做一个将String转换为Integer的功能时,发现Integer.parseInte()会抛出异常NumberFormatException. 函数Integer.parseInt(Stri ...
随机推荐
- C#利用 string.Join 泛型集合快速转换拼接字符串
C#利用 string.Join 泛型集合快速转换拼接字符串 List<int> superior_list = new List<int>(); superior_list. ...
- 芝麻软件: Python爬虫进阶之爬虫框架概述
综述 爬虫入门之后,我们有两条路可以走. 一个是继续深入学习,以及关于设计模式的一些知识,强化Python相关知识,自己动手造轮子,继续为自己的爬虫增加分布式,多线程等功能扩展.另一条路便是学习一些优 ...
- IE浏览器兼容的常见问题及解决方案
常见6个问题及解决方案 1 IE6/IE7对display:inline-block的支持还欠缺 就是我们做导航栏时通常会用到<ul><li>标签去写,在现在一些主流的浏览器中 ...
- 深入理解javascript中的事件循环event-loop
前面的话 本文将详细介绍javascript中的事件循环event-loop 线程 javascript是单线程的语言,也就是说,同一个时间只能做一件事.而这个单线程的特性,与它的用途有关,作为浏览器 ...
- MySQL定时备份数据库
一.MySQL数据备份 1.1. mysqldump命令备份数据 在MySQL中提供了命令行导出数据库数据以及文件的一种方便的工具mysqldump,我们可以通过命令行直接实现数据库内容的导出dump ...
- Maven使用中央仓库下载慢的解决办法
配置Maven仓库的方法 打开Maven配置文件Setting.xml,如下: vim /Users/yuanweipeng/.m2/settings.xml 在配置文件中添加如下配置: <mi ...
- Android破解学习之路(七)—— 乐秀视频编辑 内购破解 专业版 价值25元的破解
按照之前的支付宝破解,搜索9000的十六进制,之后... 但是,这样测试的时候,没有破解成功,便是继续研究 搜索关键字支付失败,之后找到了指定的smali文件,观察了许久,发现里面有个switch跳转 ...
- RobotFramework自动化测试框架的基础关键字(三)
1.1.1 如何定义一个字典 此处我们说的字典,其实就等同于python语言中的字典,和列表一样,字典也是python语言中非常常用的一种数据结构,也类似于Java 语言中的Map. 在 ...
- setTimeout模拟interval
/** * @param fn: {Function} // function which to execute * @param timer: {number} // gap time betwee ...
- C# 委托Delegate的使用 笔记
使用delegate总是一头雾水,记录一下笔记,备忘. 主要用于线程间操作UI上的控件,以便使用.或者是大家统一操作入口使用. using System.Windows.Forms; namespac ...