×

java异常分类三大类 java 异常

java异常分类三大类(java编程题:自定义三角形异常类(包括三个边长,当三边非法时)、自定义三角形类(包括三边、计算周长和面)

admin admin 发表于2022-09-02 03:03:08 浏览214 评论0

抢沙发发表评论

本文目录

java编程题:自定义三角形异常类(包括三个边长,当三边非法时)、自定义三角形类(包括三边、计算周长和面


上面的答案还可以,对于初学者了解什么是异常够了。
但是就三角形的算法来说就不合适了。
因为三角形边长应该是用float/double来定义的。
而三角形的边长的比较不能用x + y 《 z (会因为误差而引起计算错误)

Java分为哪三个体系


Java 平台有三个版本,这使软件开发人员、服务提供商和设备生产商可以针对特定的市场进行开发:
* Java SE(Java Platform,Standard Edition)。Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础。
* Java EE(Java Platform,Enterprise Edition)。这个版本以前称为 J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0 应用程序。
* Java ME(Java Platform,Micro Edition)。这个版本以前称为 J2ME。Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME 包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。基于 Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。

JAVA的几大分类


JAVA有三大分类,分别为:J2ME、J2SE、J2EE。Java ME是一种高度优化的Java运行环境,主要针对消费类电子设备的,例如蜂窝电话和可视电话、数字机顶盒、汽车导航系统等等。

JAVA ME技术在1999年的JavaOne Developer Conference大会上正式推出,它将Java语言的与平台无关的特性移植到小型电子设备上,允许移动无线设备之间共享应用程序。

扩展资料:

Java2平台包括:标准版(J2SE)、企业版(J2EE)和微缩版(J2ME)三个版本。J2SE,J2ME和J2EE,这也就是SunONE(Open NetEnvironment)体系。

J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入式系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。-异常

Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

参考资料:百度百科-java

参考资料:百度百科-j2me

参考资料:百度百科-JavaEE

参考资料:百度百科-J2SE


JAVA中什么情况下会产生异常


java产生异常的情况有很多种,比如说你想把一个字符串型“123”转成int型123,ok,这样没有问题。代码如下:
String a = “123“;
int b = Integer.parseInt(a);
但是如果你尝试如下写法
String a = “abc“;
int b = Integer.parseInt(a);
编译器是不会给你提示任何错误,只有等程序真正运行到此处的时候,才会发生异常,以为parseInt无法将字符串“abc“转成int型。
我举得例子只是异常中的一种
另外,Java 异常的种类有三大类,可分为可检测异常,非检测异常和自定义异常。
可检测异常
可检测异常经编译器验证,对于声明抛出异常的任何方法,编译器将强制执行处理或声明规则,例如:sqlExecption 这个异常就是一个检测异常。你连接 JDBC 时,不捕捉这个异常,编译器就通不过,不允许编译。
非检测异常
非检测异常不遵循处理或声明规则。在产生此类异常时,不一定非要采取任何适当操作,编译器不会检查是否已解决了这样一个异常。例如:一个数组为 3 个长度,当你使用下标为3时,就会产生数组下标越界异常。这个异常 JVM 不会进行检测,要靠程序员来判断。有两个主要类定义非检测异常:RuntimeException 和 Error。
Error 子类属于非检测异常,因为无法预知它们的产生时间。若 Java 应用程序内存不足,则随时可能出现 OutOfMemoryError;起因一般不是应用程序的特殊调用,而是 JVM 自身的问题。另外,Error 一般表示应用程序无法解决的严重问题。
RuntimeException 类也属于非检测异常,因为普通 JVM 操作引发的运行时异常随时可能发生,此类异常一般是由特定操作引发。但这些操作在 Java 应用程序中会频繁出现。因此,它们不受编译器检查与处理或声明规则的限制。
自定义异常
自定义异常是为了表示应用程序的一些错误类型,为代码可能发生的一个或多个问题提供新含义。可以显示代码多个位置之间的错误的相似性,也可以区分代码运行时可能出现的相似问题的一个或者多个错误,或给出应用程序中一组错误的特定含义。例如,对队列进行操作时,有可能出现两种情况:空队列时试图删除一个元素;满队列时试图添加一个元素。则需要自定义两个异常来处理这两种情况。
-java

软件开发


方向很多 就一般Java方向而言(另外还有C++、C#等多种):
Unix/Linux操作系统

Unix开发环境
Unix操作系统概述、Unix文件系统、Unix的Kernel和Shell、远程登录的原理、用户管理命令、基本文件和目录操作命令、Unix操作系统的特殊字符、使用vi命令编辑文本文件、使用FTP进行文件传输、初始化文件及环境变量的配置、Shell脚本及crontab命令。
熟练掌握Sun Solaris Unix系统基本操作命令,能够胜任Unix/Linux系统下的Java程序开发和管理工作。

Java SE开发

Java语言基础
Java SE 6.0核心语法归纳讲解,包括Java语言的特点、环境的配置、开发基本命令、类的定义技巧、方法调用过程、对象生成原理与内存分布、标识符、关键字和数据类型、运算符和表达式、Java商业运算要点、流程控制语句、Java数组和链表等算法和数据结构;同时掌握Eclipse开发工具的使用。
熟练掌握Java核心语法

Java面向对象编程
囊括了Java面向对象的精髓,包括面向对象三大特性——封装、继承与多态,各种修饰符在面向对象思想下的综合运用,抽象类的特点和使用技巧,面向接口编程的思想和实践,内部类的应用,JDK核心类包括Object、String、Date和Calendar等类的使用和设计思想,正则表达式,自动封箱和解箱,Java异常处理,Java集合框架,泛型的语法和使用等。
熟练掌握Java面向对象思想

Java高级应用
主要研究:中高级软件工程师的必修利器——Java反射编程,Java图形开发组件的开发步骤和应用技巧,事件模型的设计理念和应用,Java多线程编程,Java的I/O流,Java网络编程等。
熟练掌握Java高级编程,这部分是作为高级程序员必须掌握的技术

XML语法与解析
XML(eXtensible Markup Language)的中文名称是可扩展标记语言,是树形的概念层次结构,简而言之它就是一种保存结构化数据的格式。XML作为一种面向内容的描述语言,通过基于树形数据结构的层次化概念分类体系模型,在很大程度上弥补了HTML作为网络标准语言在概念层次关系的语义表达上的不足。
主要学习内容:XML的意义、语法结构、XML良构的规范;DTD的意义和语法、使用名称空间的技巧;Schema的意义、语法,使用Java API解析XML;基于Java DOM和SAX的XML处理技术。
掌握目前最通用的网络数据格式,并能熟练在商业开发中应用

数据库编程

Oracle SQL
Oracle公司的Oracle数据库产品是当今的高端企业级应用的主流产品。我们主要学习:Oracle 10g数据库原理,SQL语句(DDL、DML、TCL、DCL)的语法,项目中经典SQL语句重现,Oracle数据库函数包括字符函数、数值函数、日期函数、数据类型转换函数以及组函数,数据库的设计,表连接包括等值连接、非等值连接、自连接和外连接,SQL子查询,Oracle序列对象在项目中的运用,索引及视图,系统表的应用技巧,Oracle SQL的错误排查及调优解决方案。
掌握Oracle数据库设计、操作和开发

MySQL数据库
MySQL5.0数据库的管理和开发要领,掌握MySQL和Oracle数据库的异同点。
掌握MySql数据库的设计、操作和开发

JDBC编程
JDBC为Java开发者使用数据库提供了统一的编程接口,使得开发人员可以使用纯Java的方式来连接数据库,并进行操作。学习的主要内容有:JDBC的编程步骤,重要的编程接口,JDBC异常处理,JDBC中使用事务,Batch Updates批量更新,Blob/Clob等新数据类型,JNDI,DataSource,数据库连接池的管理等。逐步掌握基于JDBC的Oracle,SQLServer,DB2,MySQL等数据库连接技术。
熟练掌握Java语言对各种数据库的连接技术
系统分析与设计

软件开发流程及UML
学习软件开发过程包括瀑布模型、统一开发过程(USDP),CMMI5级软件设计规范,掌握统一建模语言UML,掌握软件的静态建模和动态建模。掌握面向对象中对象的关系。
掌握软件开发流程及UML

设计原则与模式
原则和模式是分析设计人员与程序员在开发过程中经验的总结,学习模式就是获取经验。
掌握面向对象的设计原则:“开—闭”原则(OCP)、里氏代换原则(LSP)、依赖倒转原则(DIP)、接口隔离原则(ISP)、组合/聚合复用原则(CARP)、迪米特法则(LoD)。
掌握主流的设计模式:工厂模式(Factory)、单例模式(Singleton)、观察者模式(Observer)、组合模式(Composite)、状态模式(State)等,以及重要的架构模式:Dao模式、MVC模式。
掌握面向对象的设计原则和模式。区别于激情代码,重点在于知道软件为什么要这么做,保证代码质量,保证科学的开发流程。按照CMM3的标准来设计软件和管理开发过程。
Web开发基础

HTML
基于浏览器的语言HTML:
了解HTML基本文档结构、常用的meta,掌握HTML列表和表格基本操作,了解HTTP GET和POST请求及响应的协议格式,掌握表单的基本原理,掌握GET和POST提交方式及其区别,熟练掌握常用表单元素。
掌握企业级应用客户端页面技术

CSS
CSS意为层叠样式表(Cascading Style Sheets)用于定义HTML元素的位置和样式。CSS样式定义通常存储在单独的文件中, 可以极大提高工作效率。掌握CSS基本语法和CSS选择器,掌握CSS定位技术,了解CSS内外边距、边框等特性。
掌握企业级应用客户端页面样式技术

JavaScript
基于浏览器的动态脚本技术JavaScript:
JavaScript 被设计用来向 HTML页面添加交互行为,是一种被浏览器解释执行的脚本语言。我们可以应用JavaScript来响应事件, 实现复杂交互,验证数据, 提高系统健壮性,获取和改变HTML元素及CSS属性,动态改变页面外观,逐步向RIA(Rich Internet Applications)迈进。
掌握JavaScript基本数据类型及其运算,熟练使用数组、日期等,掌握基本的对于页面元素的操作,掌握Prototype.js的基本方法,掌握HTML DOM模型,Window对象,操作Cookie,定时器等。
掌握企业级应用客户端动态脚本技术

Java Web开发

Servlet编程
学习要点:Web服务器的安装和配置,编写及部署Servlet,读取请求信息,生成响应信息,维护客户状态,过滤请求和响应,监听器的应用,对持久层资源的访问,使用包装器拦截响应,Session与Cookie技术,Servlet互操作,访问应用上下文,MVC架构模式的思想和运用。
JSP编程
JSP是在Java服务器端运行的页面,JSP本身就是一个基于文本的文档,他不仅可以包含静态的HTML内容,也可以包含动态的Java代码,服务器容器可以将JSP转换成Servlet发布,并接受请求,提供响应。
学习内容:JSP的特点、运行原理及执行过程,JSP的脚本元素,JSP指令的分类及详解,JSP中中常用的动作,JavaBean组件在JSP中的应用,JSP内置对象详解,JSP异常处理及提高程序健壮性要领,重定向与转发的本质区别,URL回写,自定义标签要领,EL表达式,JSTL核心标签库,字符集的处理和国际化。
Web系统架构
着重掌握B/S架构、B/S/A/D架构下的程序设计与开发,深入理解Web MVC架构模式,完成Web应用的调试和部署,动态发布Web应用。
Ajax编程
Ajax(Asynchronous JavaScript and XML)由 HTML、JavaScript技术、DHTML和DOM组成,这一杰出的方式可以将笨拙的Web界面转化成交互性优越的Ajax应用程序。
主要内容:Ajax技术构成及核心编程,发送请求及处理响应,Ajax数据传输格式(纯文本、XML及JSON),XMLHttpRequest详解,Ajax库及框架介绍。
-异常

常用的java基础类有哪些急


java.awt.* 一系列:
Button,Frame,Graphics,Menu,Panel,TextField,List,Event,Color,ActionEvent,KeyAdpter,KeyEvent,MouseAdpter,MouseEvent,TextLayout
java.io 一系列:
File,BufferReader,BufferWriter,FileInputStream,FileOutputStream,FileReader,FileWriter,Reader,Writer
java.lang.* 一系列:
System,String,Integer,Float,Double,Thread,Long,Math,Object,Class,Boolean
java.net 一系列:
Socket,ServerSocket,SocketAddress,URL,URLConnection
java.sql 一系列:
Date,Time,DriverManager
java.util.* 一系列:
ArrayList,Arrays,LinkedList,HashSet,Date,HashMap,Matcher,Pattern
javax.swing.* 一系列:
JFrame,JButton,Jpanel,JList,JMenu ,JCheckerBox,JDialog
-java

Java异常机制是什么


一、异常的关键字:
一般来说,异常的关键字有:try、catch、finally、throw、throws。
网上的资料对这几个关键字是这样解释的:
try: Opening exception-handling statement.
catch: Captures the exception.
finally: Runs its code before terminating the program.
throws: Lists the exceptions a method could throw.
Throw: Transfers control of the method to the exception handler.
try语句
try语句用大括号{}指定了一段代码,该段代码可能会抛弃一个或多个例外。
catch语句
catch语句的参数类似于方法的声明,包括一个例外类型和一个例外对象。例外类型必须为Throwable类的子类,它指明了catch语句所处理的例外类型,例外对象则由运行时系统在try所指定的代码块中生成并被捕获,大括号中包含对象的处理,其中可以调用对象的方法。
catch语句可以有多个,分别处理不同类的例外。Java运行时系统从上到下分别对每个catch语句处理的例外类型进行检测,直到找到类型相匹配的catch语句为止。这里,类型匹配指catch所处理的例外类型与生成的例外对象的类型完全一致或者是它的父类,因此,catch语句的排列顺序应该是从特殊到一般。也可以用一个catch语句处理多个例外类型,这时它的例外类型参数应该是这多个例外类型的父类,程序设计中要根据具体的情况来选择catch语句的例外处理类型。
finally语句
try所限定的代码中,当抛弃一个例外时,其后的代码不会被执行。通过finally语句可以指定一块代码。无论try所指定的程序块中抛弃或不抛弃例外,也无论catch语句的例外类型是否与所抛弃的例外的类型一致,finally所指定的代码都要被执行,它提供了统一的出口。通常在finally语句中可以进行资源的清除工作。如关闭打开的文件等。
throws语句
throws总是出现在一个函数头中,用来标明该成员函数可能抛出的各种异常。对大多数Exception子类来说,Java 编译器会强迫你声明在一个成员函数中抛出的异常的类型。如果异常的类型是Error或 RuntimeException, 或它们的子类,这个规则不起作用, 因为这在程序的正常部分中是不期待出现的。 如果你想明确地抛出一个RuntimeException,你必须用throws语句来声明它的类型
throw语句
throw总是出现在函数体中,用来抛出一个异常。程序会在throw语句后立即终止,它后面的语句执行不到,然后在包含它的所有try块中(可能在上层调用函数中)从里向外寻找含有与其匹配的catch子句的try块。
其实,我个人觉得,简单的来说:throws与throw从拼写上只相差一个s,但是功能、作用上有很大的区别。throws用于在方法和类处声明可能抛出的所有异常信息。throw而throw就是单个语句抛出异常,是指抛出的一个具体的异常类型,使用在方法(类)的内部。
如:
………………………………………………………………………………………………………
public class showUI throws Exception(){
public void tbstudy throws Exception(){
****;//
try{
/* 这里是要处理的异常 */
}
Catch(Exception of){
System.out.println(of);//打印出异常
}
}

………………………………………………………………………………………………………
throws通常不用显示的捕获异常,可由系统自动将所有捕获的异常信息抛给上级方法(即调用该方法或类的所有地方);
throw则需要用户自己捕获相关的异常,而后再对其进行相关处理(如打印异常的地方,类型等),最后将处理后的异常信息抛出。
他们对异常处理方式也不同.throws对异常不处理,谁调用谁处理,throws的Exception的取值范围要大于方法内部异常的最大范围,而cathch的范围又要大于throws的Exception的范围;throw 主动抛出自定义异常类对象。
二、异常继承体系
异常的继承结构
三、java处理异常方式
在java代码中如果发生异常,jvm(java虚拟机)会抛出异常对象,导致程序代码中断,这个时候jvm在做的操作就是:创建异常对象,然后抛出,比如:
1.int i= 1;
2.int j = 0;
3.int res = 0;
4.res = i/j;//除0错误
5.System.out.println(res);
这5句代码运行到第四句会中断,因为jvm抛出了异常
2.throw的作用:手动抛出异常。有时候有些错误在jvm看来不是错误,比如:
1. int age = 0;
2. age = -100;
3.System.out.println(age);
很正常的整形变量赋值,但是在我们眼中看来就不正常,谁的年龄会是负的呢?!所以我们需要自己手动引发异常,这就是throw的作用
int age = 0;
age = -100;
if(age《0){
Exception e = new Exception(); //创建异常对象
throw e; //抛出异常
}
System.out.println(age);
java中的异常机制
异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的安全通道。当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器。
传统的处理异常的办法是,函数返回一个特殊的结果来表示出现异常(通常这个特殊结果是大家约定俗称的),调用该函数的程序负责检查并分析函数返回的结果。这样做有如下的弊端:例如函数返回-1代表出现异常,但是如果函数确实要返回-1这个正确的值时就会出现混淆;可读性降低,将程序代码与处理异常的代码混叠在一起;由调用函数的程序来分析错误,这就要求客户程序员对库函数有很深的了解。
在使用File类的方法时,如正在将U盘里面的照片复制到电脑里时,有人将U盘拔掉了。这时我们的复制程序就会出错,即抛出异常。当出现程序无法控制的外部环境问题(用户提供的文件不存在或者创建文件时已有同名文件存在,文件内容损坏,网络不可用...)时,JAVA就会用异常对象来描述。
异常情况通常有三大类:
(1)检查性异常:java.lang.Exception
(2)运行期异常:java.lang.RuntimeException
(3)错误:java.lang.Error
它们都是java.lang.Throwable类的子孙类。如右图:
Throwable 类是 Java 语言中所有错误和异常类的父类,对于具体的异常,不应该使用Throwable类,而应该使用其他三者之一。
检查性异常------程序正确,但因为外在的环境条件不满足引发。例如:用户错误及I/O问题----程序试图打开一个并不存在的远程Socket端口。这不是程序本身的逻辑错误,而很可能是远程机器名字错误(用户拼写错误)。对商用软件系统,程序开发者必须考虑并处理这个问题。JAVA编译器强制要求处理这类异常,如果不捕获这类异常,程序将不能被编译。
运行期异常------这意味着程序存在bug,如数组越界,0被除,入参不满足规范.....这类异常需要更改程序来避免,JAVA编译器强制要求处理这类异常。用来表示设计或实现方面的问题,如数组越界等。因为设计和实现正确的程序不会引发这类异常,所以常常不处理它。发生这类异常时,运行时环境会输出一条信息,提示用户修正错误。
错误------一般很少见,也很难通过程序解决。它可能源于程序的bug,但一般更可能源于环境问题,如内存耗尽。错误在程序中无须处理,而有运行环境处理。Error表示很难恢复的错误,如内存越界。一般不期望用户程序来处理,即使程序员有能力处理这种错误,也还是交给系统处理为好。
-异常

在java中常出现的异常和解决方法


1. java.lang.nullpointerexception
这个异常大家肯定都经常遇到,异常的解释是“程序遇上了空指针“,简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即把数组的初始化和数组元素的初始化混淆起来了。数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话)
2. java.lang.classnotfoundexception
这个异常是很多原本在jb等开发环境中开发的程序员,把jb下的程序包放在wtk下编译经常出现的问题,异常的解释是“指定的类不存在“,这里主要考虑一下类的名称和路径是否正确即可,如果是在jb下做的程序包,一般都是默认加上package的,所以转到wtk下后要注意把package的路径加上。
3. java.lang.arithmeticexception
这个异常的解释是“数学运算异常“,比如程序中出现了除以零这样的运算就会出这样的异常,对这种异常,大家就要好好检查一下自己程序中涉及到数学运算的地方,公式是不是有不妥了。
4. java.lang.arrayindexoutofboundsexception
这个异常相信很多朋友也经常遇到过,异常的解释是“数组下标越界“,现在程序中大多都有对数组的操作,因此在调用数组的时候一定要认真检查,看自己调用的下标是不是超出了数组的范围,一般来说,显示(即直接用常数当下标)调用不太容易出这样的错,但隐式(即用变量表示下标)调用就经常出错了,还有一种情况,是程序中定义的数组的长度是通过某些特定方法决定的,不是事先声明的,这个时候,最好先查看一下数组的length,以免出现这个异常。
5. java.lang.illegalargumentexception
这个异常的解释是“方法的参数错误“,很多j2me的类库中的方法在一些情况下都会引发这样的错误,比如音量调节方法中的音量参数如果写成负数就会出现这个异常,再比如g.setcolor(int red,int green,int blue)这个方法中的三个值,如果有超过255的也会出现这个异常,因此一旦发现这个异常,我们要做的,就是赶紧去检查一下方法调用中的参数传递是不是出现了错误。
6. java.lang.illegalaccessexception
这个异常的解释是“没有访问权限“,当应用程序要调用一个类,但当前的方法即没有对该类的访问权限便会出现这个异常。对程序中用了package的情况下要注意这个异常。
其他还有很多异常,我就不一一列举了,我要说明的是,一个合格的程序员,需要对程序中常见的问题有相当的了解和相应的解决办法,否则仅仅停留在写程序而不会改程序的话,会极大影响到自己的开发的。关于异常的全部说明,在api里都可以查阅。
算术异常类:ArithmeticExecption
空指针异常类:NullPointerException
类型强制转换异常:ClassCastException
数组负下标异常:NegativeArrayException
数组下标越界异常:ArrayIndexOutOfBoundsException
违背安全原则异常:SecturityException
文件已结束异常:EOFException
文件未找到异常:FileNotFoundException
字符串转换为数字异常:NumberFormatException
操作数据库异常:SQLException
输入输出异常:IOException
方法未找到异常:NoSuchMethodException
java.lang.AbstractMethodError
抽象方法错误。当应用试图调用抽象方法时抛出。
java.lang.AssertionError
断言错。用来指示一个断言失败的情况。
java.lang.ClassCircularityError
类循环依赖错误。在初始化一个类时,若检测到类之间循环依赖则抛出该异常。
java.lang.ClassFormatError
类格式错误。当Java虚拟机试图从一个文件中读取Java类,而检测到该文件的内容不符合类的有效格式时抛出。
java.lang.Error
错误。是所有错误的基类,用于标识严重的程序运行问题。这些问题通常描述一些不应被应用程序捕获的反常情况。
java.lang.ExceptionInInitializerError
初始化程序错误。当执行一个类的静态初始化程序的过程中,发生了异常时抛出。静态初始化程序是指直接包含于类中的static语句段。
java.lang.IllegalAccessError
违法访问错误。当一个应用试图访问、修改某个类的域(Field)或者调用其方法,但是又违反域或方法的可见性声明,则抛出该异常。
java.lang.IncompatibleClassChangeError
不兼容的类变化错误。当正在执行的方法所依赖的类定义发生了不兼容的改变时,抛出该异常。一般在修改了应用中的某些类的声明定义而没有对整个应用重新编译而直接运行的情况下,容易引发该错误。
java.lang.InstantiationError
实例化错误。当一个应用试图通过Java的new操作符构造一个抽象类或者接口时抛出该异常.
java.lang.InternalError
内部错误。用于指示Java虚拟机发生了内部错误。
java.lang.LinkageError
链接错误。该错误及其所有子类指示某个类依赖于另外一些类,在该类编译之后,被依赖的类改变了其类定义而没有重新编译所有的类,进而引发错误的情况。
java.lang.NoClassDefFoundError
未找到类定义错误。当Java虚拟机或者类装载器试图实例化某个类,而找不到该类的定义时抛出该错误。
java.lang.NoSuchFieldError
域不存在错误。当应用试图访问或者修改某类的某个域,而该类的定义中没有该域的定义时抛出该错误。
java.lang.NoSuchMethodError
方法不存在错误。当应用试图调用某类的某个方法,而该类的定义中没有该方法的定义时抛出该错误。
java.lang.OutOfMemoryError
内存不足错误。当可用内存不足以让Java虚拟机分配给一个对象时抛出该错误。
java.lang.StackOverflowError
堆栈溢出错误。当一个应用递归调用的层次太深而导致堆栈溢出时抛出该错误。
java.lang.ThreadDeath
线程结束。当调用Thread类的stop方法时抛出该错误,用于指示线程结束。
java.lang.UnknownError
未知错误。用于指示Java虚拟机发生了未知严重错误的情况。
java.lang.UnsatisfiedLinkError
未满足的链接错误。当Java虚拟机未找到某个类的声明为native方法的本机语言定义时抛出。
java.lang.UnsupportedClassVersionError
不支持的类版本错误。当Java虚拟机试图从读取某个类文件,但是发现该文件的主、次版本号不被当前Java虚拟机支持的时候,抛出该错误。
java.lang.VerifyError
验证错误。当验证器检测到某个类文件中存在内部不兼容或者安全问题时抛出该错误。
java.lang.VirtualMachineError
虚拟机错误。用于指示虚拟机被破坏或者继续执行操作所需的资源不足的情况。
java.lang.ArithmeticException
算术条件异常。譬如:整数除零等。
java.lang.ArrayIndexOutOfBoundsException
数组索引越界异常。当对数组的索引值为负数或大于等于数组大小时抛出。
java.lang.ArrayStoreException
数组存储异常。当向数组中存放非数组声明类型对象时抛出。
java.lang.ClassCastException
类造型异常。假设有类A和B(A不是B的父类或子类),O是A的实例,那么当强制将O构造为类B的实例时抛出该异常。该异常经常被称为强制类型转换异常。
java.lang.ClassNotFoundException
找不到类异常。当应用试图根据字符串形式的类名构造类,而在遍历CLASSPAH之后找不到对应名称的class文件时,抛出该异常。
java.lang.CloneNotSupportedException
不支持克隆异常。当没有实现Cloneable接口或者不支持克隆方法时,调用其clone()方法则抛出该异常。
java.lang.EnumConstantNotPresentException
枚举常量不存在异常。当应用试图通过名称和枚举类型访问一个枚举对象,但该枚举对象并不包含常量时,抛出该异常。
java.lang.Exception
根异常。用以描述应用程序希望捕获的情况。
java.lang.IllegalAccessException
违法的访问异常。当应用试图通过反射方式创建某个类的实例、访问该类属性、调用该类方法,而当时又无法访问类的、属性的、方法的或构造方法的定义时抛出该异常。
java.lang.IllegalMonitorStateException
违法的监控状态异常。当某个线程试图等待一个自己并不拥有的对象(O)的监控器或者通知其他线程等待该对象(O)的监控器时,抛出该异常。
java.lang.IllegalStateException
违法的状态异常。当在Java环境和应用尚未处于某个方法的合法调用状态,而调用了该方法时,抛出该异常。
java.lang.IllegalThreadStateException
违法的线程状态异常。当县城尚未处于某个方法的合法调用状态,而调用了该方法时,抛出异常。
java.lang.IndexOutOfBoundsException
索引越界异常。当访问某个序列的索引值小于0或大于等于序列大小时,抛出该异常。
java.lang.InstantiationException
实例化异常。当试图通过newInstance()方法创建某个类的实例,而该类是一个抽象类或接口时,抛出该异常。
java.lang.InterruptedException
被中止异常。当某个线程处于长时间的等待、休眠或其他暂停状态,而此时其他的线程通过Thread的interrupt方法终止该线程时抛出该异常。
java.lang.NegativeArraySizeException
数组大小为负值异常。当使用负数大小值创建数组时抛出该异常。
java.lang.NoSuchFieldException
属性不存在异常。当访问某个类的不存在的属性时抛出该异常。
java.lang.NoSuchMethodException
方法不存在异常。当访问某个类的不存在的方法时抛出该异常。
java.lang.NullPointerException
空指针异常。当应用试图在要求使用对象的地方使用了null时,抛出该异常。譬如:调用null对象的实例方法、访问null对象的属性、计算null对象的长度、使用throw语句抛出null等等。
java.lang.NumberFormatException
数字格式异常。当试图将一个String转换为指定的数字类型,而该字符串确不满足数字类型要求的格式时,抛出该异常。
java.lang.RuntimeException
运行时异常。是所有Java虚拟机正常操作期间可以被抛出的异常的父类。
java.lang.SecurityException
安全异常。由安全管理器抛出,用于指示违反安全情况的异常。
java.lang.StringIndexOutOfBoundsException
字符串索引越界异常。当使用索引值访问某个字符串中的字符,而该索引值小于0或大于等于序列大小时,抛出该异常。
java.lang.TypeNotPresentException
类型不存在异常。当应用试图
-java