java异常类定义
❶ 常见的java异常有哪些都是什么意思
1、ArithmeticException - 算术运算中,被0除或模除。
2、 - 数组越界访问。
3、ArrayStoreException - 数据存储异常,写数组操作时,对象或数据类型不兼容。
4、ClassCastException - 类型转换异常。
5、IllegalArgumentException - 方法的参数无效。
6、IllegalThreadStateException - 试图非法改变线程状态,比方说试图启动一已经运行的线程。
7、NullPointerException - 试图访问一空对象的变量、方法或空数组的元素
8、NumberFormatException - 数据格式异常,试图把一字符串非法转换成数值(或相反)。
9、SecurityException - 如果Applet试图执行一被WWW浏览器安全设置所禁止的操作。
10、 - 如改变了某一类定义,却没有重新编译其他引用了这个类的对象。如某一成员变量的声明被从静态改变为非静态,但其他引用了这个变量的类却没有重新编译,或者相反。
11、OutOfMemoryException - 内存不足,通常发生于创建对象之时。
12、NoClassDefFoundException - JAVA运行时系统找不到所引用的类。
13、IncompatibleTypeException - 试图实例化一个接口,Java运行时系统将抛出这个异常。
14、UnsatisfiedLinkException - 如果所需调用的方法是C函数,但Java运行时系统却无法连接这个函数。
15、InternalException - 系统内部故障所导致的异常情况,可能是因为Java运行时系统本身的原因。如果发现一可重现的InternalException,可以直接给Sun公司发电邮[email protected]。
❷ 如何编写java中的自定义异常类
编写自定义异常类实际上是继承一个API标准异常类,用新定义的异常处理信息覆盖原有信息的过程。常用的编写自定义异常类的模式如下:
public class CustomException extends Exception { //或者继承任何标准异常类
public CustomException() {} //用来创建无参数对象
public CustomException(String message) { //用来创建指定参数对象
super(message); //调用超类构造器
}
}
当然也可选用Throwable作为超类。其中无参数构造器为创建缺省参数对象提供了方便。第二个构造器将在创建这个异常对象时提供描述这个异常信息的字符串,通过调用超类构造器向上传递给超类,对超类中的toString()方法中返回的原有信息进行覆盖。
来讨论一个具体例子。假设程序中需要验证用户输入的表示年龄的数据必须是正整数值。我们可以按照以上模式编写这个自定义异常类如下:
public class NegativeAgeException extends Exception {
//或者:extends Throwable
public NegativeAgeException() {}
public NegativeAgeException(String message) {
super(message);
}
}
下面是应用这个自定义异常类的例子:
try{
String ageString = JOptionPane.showInputDialog("Enter your age: ");
if (Integer.parseInt(ageString) < 0)
throw new NegativeAgeException("Please enter a positive age");
else
JOptionPane.showMessageDialog(null, ageString, "Age", 1);
}
catch(NegativeAgeException e){
System.out.println(e);
}
❸ java中运行时异常和非运行时异常的定义及其异同是什么
这个网络上找找很多的,主要区别在于非运行时异常必须在代码中显示的声明捕获也就是放在try{}catch(){}块中,或者在方法上申明throws 来抛出异常,
运行时异常不需要特意的申明,一般运行时异常都是虚拟机出现问题了才会报,比如你写个死循环导致内存不足什么的
❹ java自定义异常类问题
异常类的理解,个人看法
是不是说输出异常的信息啊,在自定义类中输出异常的信息
然后在程序中当判断到输入的数据是小于0,调用小于0的异常类里的输出信息
大于100,就调用大于100的异常类里的输出信息
❺ java自定义异常类都有什么
public void MyException extends Exception{x0dx0apublic MyExceprion(){x0dx0aSystem.out.println("自定义异常");x0dx0a}x0dx0a}x0dx0apublic class Exam{x0dx0apublic static void mul() throws MyException{x0dx0aif(自己写条件){x0dx0athrow new MyException();x0dx0a}x0dx0a}x0dx0a}x0dx0ax0dx0a这个应该能看懂吧,我只是写了个结构没写完整程序的,你看懂这个就行,定义一个自定义异常,然后在你需要的地方抛出异常,在主方法中调用方法的时候达到一定条件就会抛出异常
❻ 解答一下有关JAVA异常类的问题
问题(1)可以改为Exception
问题(2)示情况而定是否可以改为IOException
原因,原语句中的try...catch..的语义是在try里面的两行语句中捕获可能抛出的DangerException异常并加以处理,
(1). Exception是DangerException的父类,替换后语义变为了在try里面的两行语句中捕获可能抛出的Exception异常并加以处理,语义是正确的;
(2). IOException不确定是不是DangerException的父类,替换后语义变为了在try里面的两行语句中捕获可能抛出的IOException异常并加以处理,语义不一定正确,如果IOException是DangerException的父类,就是正确的,否则是错误的(在try里面没有IOException的类型可能被抛出),在编译时会报错(Exception 'java.io.IOException' is never thrown in the corresponding try block)
❼ java自定义异常类
public void MyException extends Exception{
public MyExceprion(){
System.out.println("自定义异常");
}
}
public class Exam{
public static void mul() throws MyException{
if(自己写条件){
throw new MyException();
}
}
}
这个应该能看懂吧,我只是写了个结构没写完整程序的,你看懂这个就行,定义一个自定义异常,然后在你需要的地方抛出异常,在主方法中调用方法的时候达到一定条件就会抛出异常
❽ 常见JAVA运行时异常有哪些
1,java.lang.NullPointerException
这个异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。
2,java.lang.ClassNotFoundException
异常的解释是"指定的类不存在",这里主要考虑一下类的名称和路径是否正确即可
3,java.lang.
这个异常的解释是"数组下标越界",现在程序中大多都有对数组的操作,因此在调用数组的时候一定要认真检查,看自己调用的下标是不是超出了数组的范围,一般来说,显示(即直接用常数当下标)调用不太容易出这样的错,但隐式(即用变量表示下标)调用就经常出错了.
4,java.lang.NoSuchMethodError
方法不存在错误。当应用试图调用某类的某个方法,而该类的定义中没有该方法的定义时抛出该错误。
5,java.lang.IndexOutOfBoundsException
索引越界异常。当访问某个序列的索引值小于0或大于等于序列大小时,抛出该异常。
6,java.lang.NumberFormatException
数字格式异常。当试图将一个String转换为指定的数字类型,而该字符串确不满足数字类型要求的格式时,抛出该异常。
7,java.sql.SQLException
Sql语句执行异常
8,java.io.IOException
输入输出异常
9,java.lang.IllegalArgumentException
方法参数错误
10java.lang.IllegalAccessException
无访问权限异常
(8)java异常类定义扩展阅读:
Java技术应用领域:
1、Android应用
许多的Android应用都是Java程序员开发者开发。虽然Android运用了不同的JVM以及不同的封装方式,但是代码还是用Java语言所编写。相当一部分的手机中都支持JAVA游戏,这就使很多非编程人员都认识了JAVA。
2、在金融业应用的服务器程序
Java在金融服务业的应用非常广泛,很多第三方交易系统、银行、金融机构都选择用Java开发,因为相对而言,Java较安全。大型跨国投资银行用Java来编写前台和后台的电子交易系统,结算和确认系统,数据处理项目以及其他项目。
3、网站
Java在电子商务领域以及网站开发领域占据了一定的席位。开发人员可以运用许多不同的框架来创建web项目,SpringMVC,Struts2.0以及frameworks。即使是简单的servlet,jsp和以struts为基础的网站在政府项目中也经常被用到。例如医疗救护、保险、教育、国防以及其他的不同部门网站都是以Java为基础来开发的。
4、嵌入式领域
Java在嵌入式领域发展空间很大。在这个平台上,只需130KB就能够使用Java技术(在智能卡或者传感器上)。
5、大数据技术
Hadoop以及其他大数据处理技术很多都是用Java,例如Apache的基于Java的HBase和Accumulo以及ElasticSearchas。
6、高频交易的空间
Java平台提高了这个平台的特性和即使编译,他同时也能够像C++一样传递数据。正是由于这个原因,Java成为的程序员编写交易平台的语言,因为虽然性能不比C++,但开发人员可以避开安全性,可移植性和可维护性等问题。
7、科学应用
Java在科学应用中是很好选择,包括自然语言处理。最主要的原因是因为Java比C++或者其他语言相对其安全性、便携性、可维护性以及其他高级语言的并发性更好。
❾ Java异常的含义
异常就是一种类是与错误的东西
异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的安全通道。当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器。
❿ java异常分类
一、概念
如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法。在这种情况下
会抛出一个封装了错误信息的对象。此时,这个方法会立刻退出同时不返回任何值。另外,调用
这个方法的其他代码也无法继续执行,异常处理机制会将代码执行交给异常处理器。
二、异常分类
Throwable 是 Java 语言中所有错误或异常的超类,在 Java 中只有 Throwable 类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型。
实例分为 Error 和 Exception 两种。
2.1、Error
Error 类是指 java 运行时系统的内部错误和资源耗尽错误。应用程序不会抛出该类对象。如果
出现了这样的错误,除了告知用户,剩下的就是尽力使程序安全的终止。
2.2、Exception
Exception 又有两个分支 , 一个是运行时异常 RuntimeException , 一 个是检查异常 CheckedException。
RuntimeException 如 :NullPointerException 、 ClassCastException ;
CheckedException 如: I/O 错误导致的 IOException、SQLException。
RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。 如果出现 RuntimeException,那么一
定是程序员代码书写导致的错误.
CheckedException:一般是外部错误,这种异常都发生在编译阶段,Java 编译器会强
制程序去捕获此类异常,即会出现要求你把这段可能出现异常的程序进行 try catch,该类异常一
般包括几个方面:
试图在文件尾部读取数据
试图打开一个错误格式的 URL
试图根据给定的字符串查找 class 对象,而这个字符串表示的类并不存在
三、异常的处理方式
3.1、不处理
遇到异常问题不进行具体处理,而是继续抛给调用者 (throw,throws)
抛出异常有三种形式,一是 throw,再就是 throws,还有一种系统自动抛异常。
public static void main(String[] args) {
String s = "abc";
if(s.equals("abc")) {
/** 手动抛出一个数字格式化异常 **/
throw new NumberFormatException();
} else {
System.out.println(s);
}
}
int div(int a,int b) throws Exception{
return a/b;
}
3.2、处理
try catch 捕获异常针对性处理方式
四、Throw 和 throws 的区别
throws 用在函数上,后面跟的是异常类,可以跟多个;
语法:(修饰符)(方法名)([参数列表])[throws(异常类)]{……}
public void doA(int a) throws Exception1,Exception3{……}
throw 用在函数内,后面跟的是异常对象。
throws E1,E2,E3只是告诉程序这个方法可能会抛出这些异常,方法的调用者可能要处理这些异常,而这些异常E1,E2,E3可能是该函数体产生的。
throw则是明确了这个地方要抛出这个异常。
结合来看:
void doA(int a) throws IOException,{
try{
......
}catch(Exception1 e){
throw e;
}catch(Exception2 e){
System.out.println("出错了!");
}
if(a!=b)
throw new Exception3("自定义异常");
}
throws 用来声明异常,让调用者知道该功能可能会出现的问题(比如上方的 IO 异常),可以给出预先的处理方式;
throw 抛出具体的问题对象,执行到 throw,功能就已经结束了,跳转到调用者,并将具体的问题对象抛给调用者。
也就是说 throw 语句独立存在时,下面不要定义其他语句,因为执行不到。
概括:
throws 表示出现异常的一种可能性,并不一定会发生这些异常;
throw 则是抛出了异常,执行 throw 则一定抛出了某种异常对象。
五、总结
了解 Exception、Error 两种异常的区别,面试可能会问。
区分 throws、throw使用维度。