java中5种常见的异常|Exception是哪些

java中5种常见的异常|Exception是哪些

本文目录

  • java中5种常见的异常(Exception)是哪些
  • java中exception的处理
  • java exception异常怎么解决
  • java中常见的几种异常
  • Java编程中常见异常有哪些
  • java中自定义异常为何要继承exception类
  • java中error与exception的区别是什么
  • Java中Exception是什么
  • 常见JAVA运行时异常有哪些
  • Java的Exception构造方法

java中5种常见的异常(Exception)是哪些


  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.IllegalAccessException 

这个异常的解释是“没有访问权限“,当应用程序要调用一个类,但当前的方法即没有对该类的访问权限便会出现这个异常。对程序中用了Package的情况下要注重这个异常。


java中exception的处理


早期的编程语言(比如C语言)没有异常处理,通常是遇到错误返回一个特殊的值或设定一个标志,并以此判断是不是有错误产生。随着系统规模的不断扩大,这种错误处理已经成为创建大型可维护程序的障碍了。
于是在一些语言中出现了异常处理机制,比如在Basic中的异常处理语句“on error goto”,而Java则在C++基础上建立了新的异常处理机制。
Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。这种机制为复杂程序提供了强有力的控制方式。同时这些异常代码与“常规”代码分离,增强了程序的可读性,编写程序时也显得更灵活。
Java中的异常类
在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。
Throwable类有两个标准子类:java.lang.Error和java.lang.Exception,即错误和异常。错误:Error类,一般是指虚拟机相关的问题,如系统崩溃、虚拟机出错误、动态链接失败等,这一类错误无法恢复或不可能捕获,将导致应用程序中断。
异常:Exception类,则是指一些可以被捕获且可能恢复的异常情况,如数组下标越界Array,Index,OutOf,Bounds,Excepton。数字被零除产生异常:ArithmeticException 、输入/输出异常:IOException等。
提示:Java编译器要求Java程序必须捕获或声明所有非运行时的异常,如:FileNotFoundException、IOException等。因为,对于这类异常来说,如果程序不进行处理,可能会带来意想不到的结果。但运行时出现异常可以不做处理,因为这类异常很普遍,全部处理可能对程序的可读性和运行效率产生影响。
Java异常处理形式,Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和finally。一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。
下面是Java异常处理程序的基本形式: try //执行时程序块 catch ExceptionType1e //对ExceptionType1的处理 catch ExceptionType2e //对ExceptionType2的处理 throw e //再抛出这个“异常” finally try程序块和catch语句:遇到一个try语句,“异常”的框架就放到堆栈上面,直到所有的try块内的语句都完成。如果下一级的try语句没有对某种“异常”进行处理,堆栈就会展开,直到遇到有处理这种“异常”的try语句。 在try程序后面,应包含一个catch子句来指定你想要捕捉的“异常”的类型。提示:捕获异常的第一步就是用try … 选定你要捕获异常的范围,在执行时,括号内的代码会产生异常对象并被抛出。然后你就可以用catch块来处理异常了。 throw语句和throws语句:throw语句用来明确地抛出一个“异常”。首先,你必须得到一个Throwable类或其它子类产生的实例句柄,通过参数传到catch子句,或者用new语句来创建一个实例。 下面是throw语句的通常形式: throw ThrowableInstance,提示:执行throw语句后,运行流程将立即停止,throw的下一条语句也将暂停执行。这里new运算符用于创建一个Throwable类的实例,在后文的面向对象编程一文中将详细讲解。 throws语句用来标明一个成员函数可能抛出的各种“异常”。对大多数Exception子类来说,Java编译器会强迫你声明在一个成员函数中抛出的“异常”的类型。如果“异常”的类型是Error或RuntimeException,或它们的子类,这个规则不起作用。如果你想明确地抛出一个RuntimeException,你必须用throws语句来声明它的类型。 提示:当然,你可能对上面的说明不是很明白,不过不要紧,编译运行下面的Java程序(已经为你做了详细的注释)你会理解很多! 现在我们用下面的例程来说明问题: class ThrowsDemo //类名,相应的java源文件应该保存成: ThrowsDemo.javastatic void procedure throws IllegalAccessException //throws语句 //抛出IllegalAccessException类型的异常System.out.println ″inside procedure″ //输出文本信息,以说明是在执行procedure方法时抛出了异常throw new IllegalAccessException ″demo″ //新生成一个Throwable类实例,然后抛出异常 public static void main String args //main 方法开始,程序从此处执行 try //try语句块开始procedure //调用procedure方法,该方法将Throw(抛出)异常信息 catch IllegalAccessException e //处理IllegalAccessException类型的异常, catch语句块System.out.println ″caught ″ + e 编程并执行程序,其过程如下: E \javacode\exception》java ThrowsDemoinside procedurecaught java.lang.IllegalAccessException demo提示:如上面的代码所示,我们用了一个完整的程序来说明在Java程序中如何使用try…catch…throw等语句。Try … 里产生的异常被捕获了下来,然后在catch块里进行处理(这里只是输出异常信息)。 throws IllegalAccessException标明程序将抛出一个IllegalAccessException类型的异常。IllegalAccessExceptione生成一个异常对象,然后用System.out.println输出异常信息。 finally语句,有时为了确保一段代码不管发生什么异常都要被执行,可以使用关键词finally来标出这样一段代码。一个成员函数返回到调用它的成员函数,或者通过一个没捕捉到的异常,或者通过一个明确的return语句,finally子句总是恰好在成员函数返回前执行。 下面我们以一个比较完整的异常处理程序来说明上面所述的各种异常处理语句的使用问题: class ExceptionDemo //异常使用示例,保存为ExceptionDemo.javastatic void procA try System.out.println ″inside procA″ throw new RuntimeException ″demo″ //抛出异常finally System.out.println ″procA’s finally″ //注意:不管发生什么等会执行!!static void procB try System.out.println ″inside procB″ return //返回,实际上是在finally语句执行完后才返回finally System.out.println ″procB’s finally″ public static void main String args try procA catch Exception e System.out.println ″catch ″+e procB提示:在上面的完整程序中,finally后的大括号内的代码是任何情况下都会执行的。另外,在procB中,return 语句并没有立即返回,这一点应该特别注意。你可以亲自动手,执行上面的程序试试(编译和执行类似于上例)。 到目前为止,关于Java的流程控制已经完全讲完了。要真正理解并掌握它们只有经过大量的练习。而好的方法就是修改上面的每一个程序,让它们实现你想要的功能,并在此基本上理解Java的流程控制。 而要写好Java程序,熟悉使用Java的流程控制和异常处理是非常关键的。
希望对你能有所帮助。

java exception异常怎么解决


在 Java 应用程序中,异常处理机制为:抛出异常,捕捉异常。
抛出异常:当一个方法出现错误引发异常时,方法创建异常对象并交付运行时系统,异常对象中包含了异常类型和异常出现时的程序状态等异常信息。运行时系统负责寻找处置异常的代码并执行。
捕获异常:在方法抛出异常之后,运行时系统将转为寻找合适的异常处理器(exception handler)。潜在的异常处理器是异常发生时依次存留在调用栈中的方法的集合。当异常处理器所能处理的异常类型与方法抛出的异常类型相符时,即为合适 的异常处理器。运行时系统从发生异常的方法开始,依次回查调用栈中的方法,直至找到含有合适异常处理器的方法并执行。当运行时系统遍历调用栈而未找到合适 的异常处理器,则运行时系统终止。同时,意味着Java程序的终止。
对于运行时异常、错误或可查异常,Java技术所要求的异常处理方式有所不同。
由于运行时异常的不可查性,为了更合理、更容易地实现应用程序,Java规定,运行时异常将由Java运行时系统自动抛出,允许应用程序忽略运行时异常。
对于方法运行中可能出现的Error,当运行方法不欲捕捉时,Java允许该方法不做任何抛出声明。因为,大多数Error异常属于永远不能被允许发生的状况,也属于合理的应用程序不该捕捉的异常。
对于所有的可查异常,Java规定:一个方法必须捕捉,或者声明抛出方法之外。也就是说,当一个方法选择不捕捉可查异常时,它必须声明将抛出异常。
能够捕捉异常的方法,需要提供相符类型的异常处理器。所捕捉的异常,可能是由于自身语句所引发并抛出的异常,也可能是由某个调用的方法或者Java运行时 系统等抛出的异常。也就是说,一个方法所能捕捉的异常,一定是Java代码在某处所抛出的异常。简单地说,异常总是先被抛出,后被捕捉的。
任何Java代码都可以抛出异常,如:自己编写的代码、来自Java开发环境包中代码,或者Java运行时系统。无论是谁,都可以通过Java的throw语句抛出异常。
从方法中抛出的任何异常都必须使用throws子句。
捕捉异常通过try-catch语句或者try-catch-finally语句实现。
总体来说,Java规定:对于可查异常必须捕捉、或者声明抛出。允许忽略不可查的RuntimeException和Error。
4.1 捕获异常:try、catch 和 finally
1.try-catch语句
在Java中,异常通过try-catch语句捕获。其一般语法形式为:
try {
// 可能会发生异常的程序代码
} catch (Type1 id1){
// 捕获并处置try抛出的异常类型Type1
}
catch (Type2 id2){
//捕获并处置try抛出的异常类型Type2
}
关键词try后的一对大括号将一块可能发生异常的代码包起来,称为监控区域。Java方法在运行过程中出现异常,则创建异常对象。将异常抛出监控区域之 外,由Java运行时系统试图寻找匹配的catch子句以捕获异常。若有匹配的catch子句,则运行其异常处理代码,try-catch语句结束。
匹配的原则是:如果抛出的异常对象属于catch子句的异常类,或者属于该异常类的子类,则认为生成的异常对象与catch块捕获的异常类型相匹配。
例1 捕捉throw语句抛出的“除数为0”异常。
public class TestException {
public static void main(String args) {
int a = 6;
int b = 0;
try { // try监控区域
if (b == 0) throw new ArithmeticException(); // 通过throw语句抛出异常
System.out.println(“a/b的值是:“ + a / b);
}
catch (ArithmeticException e) { // catch捕捉异常
System.out.println(“程序出现异常,变量b不能为0。“);
}
System.out.println(“程序正常结束。“);
}
}
运行结果:程序出现异常,变量b不能为0。
程序正常结束。
例1 在try监控区域通过if语句进行判断,当“除数为0”的错误条件成立时引发ArithmeticException异常,创建 ArithmeticException异常对象,并由throw语句将异常抛给Java运行时系统,由系统寻找匹配的异常处理器catch并运行相应异 常处理代码,打印输出“程序出现异常,变量b不能为0。”try-catch语句结束,继续程序流程。
事实上,“除数为0”等ArithmeticException,是RuntimException的子类。而运行时异常将由运行时系统自动抛出,不需要使用throw语句。
例2 捕捉运行时系统自动抛出“除数为0”引发的ArithmeticException异常。
public static void main(String args) {
int a = 6;
int b = 0;
try {
System.out.println(“a/b的值是:“ + a / b);
} catch (ArithmeticException e) {
System.out.println(“程序出现异常,变量b不能为0。“);
}
System.out.println(“程序正常结束。“);
}
}
运行结果:程序出现异常,变量b不能为0。
程序正常结束。
例2 中的语句:
System.out.println(“a/b的值是:“ + a/b);
在运行中出现“除数为0”错误,引发ArithmeticException异常。运行时系统创建异常对象并抛出监控区域,转而匹配合适的异常处理器catch,并执行相应的异常处理代码。
由于检查运行时异常的代价远大于捕捉异常所带来的益处,运行时异常不可查。Java编译器允许忽略运行时异常,一个方法可以既不捕捉,也不声明抛出运行时异常。
例3 不捕捉、也不声明抛出运行时异常。
public class TestException {
public static void main(String args) {
int a, b;
a = 6;
b = 0; // 除数b 的值为0
System.out.println(a / b);
}
}
运行结果:
Exception in thread “main“ java.lang.ArithmeticException: / by zero
at Test.TestException.main(TestException.java:8)
例4 程序可能存在除数为0异常和数组下标越界异常。
public class TestException {
public static void main(String args) {
int intArray = new int;
try {
for (int i = 0; i 《= intArray.length; i++) {
intArray[i] = i;
System.out.println(“intArray[“ + i + “] = “ + intArray[i]);
System.out.println(“intArray[“ + i + “]模 “ + (i - 2) + “的值: “
+ intArray[i] % (i - 2));
}
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println(“intArray数组下标越界异常。“);
} catch (ArithmeticException e) {
System.out.println(“除数为0异常。“);
}
System.out.println(“程序正常结束。“);
}
}
运行结果:
intArray = 0
intArray模 -2的值: 0
intArray = 1
intArray模 -1的值: 0
intArray = 2
除数为0异常。
程序正常结束。

java中常见的几种异常


1、空指针异常类:NullPointerException

调用了未经初始化的对象或者是不存在的对象。经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针, 即把数组的初始化和数组元素的初始化混淆起来了。

数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化, 依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话)。

2、数据类型转换异常:java.lang.ClassCastException

当试图将对某个对象强制执行向下转型,但该对象又不可转换又不可转换为其子类的实例时将引发该异常,如下列代码。

Object obj = new Integer(0);

String str = obj;

3、没有访问权限:java.lang.IllegalAccessException

当应用程序要调用一个类,但当前的方法即没有对该类的访问权限便会出现这个异常。对程序中用了Package的情况下要注意这个异常。

4、方法的参数错误:java.lang.IllegalArgumentException

比如g.setColor(int red,int green,int blue)这个方法中的三个值,如果有超过255的也会出现这个异常,因此一旦发现这个异常,我们要做的,就是赶紧去检查一下方法调用中的参数传递是不是出现了错误。

5、数组下标越界异常:java.lang.IndexOutOfBoundsException

查看调用的数组或者字符串的下标值是不是超出了数组的范围,一般来说,显示(即直接用常数当下标)调用不太容易出这样的错,但隐式(即用变量表示下标)调用就经常出错了。

还有一种情况,是程序中定义的数组的长度是通过某些特定方法决定的,不是事先声明的,这个时候先查看一下数组的length,以免出现这个异常。

6、文件已结束异常:EOFException

当程序在输入的过程中遇到文件或流的结尾时,引发异常。因此该异常用于检查是否达到文件或流的结尾

7、文件未找到异常:FileNotFoundException

当程序试图打开一个不存在的文件进行读写时将会引发该异常。该异常由FileInputStream,FileOutputStream,RandomAccessFile的构造器声明抛出,即使被操作的文件存在,但是由于某些原因不可访问,比如打开一个只读文件进行写入,这些构造方法仍然会引发异常。

8、字符串转换为数字异常:NumberFormatException

当试图将一个String转换为指定的数字类型,而该字符串确不满足数字类型要求的格式时,抛出该异常.如现在讲字符型的数据“123456”转换为数值型数据时,是允许的。

但是如果字符型数据中包含了非数字型的字符,如123#56,此时转换为数值型时就会出现异常。系统就会捕捉到这个异常,并进行处理。

9、指定的类不存在: java.lang.ClassNotFoundException

这里主要考虑一下类的名称和路径是否正确即可,通常都是程序试图通过字符串来加载某个类时可能引发异常。比如:调用Class.forName;或者调用ClassLoad的finaSystemClass;或者LoadClass;

10、实例化异常:java.lang.InstantiationException

当试图通过Class的newInstance方法创建某个类的实例,但程序无法通过该构造器来创建该对象时引发。Class对象表示一个抽象类,接口,数组类,基本类型 。该Class表示的类没有对应的构造器。


Java编程中常见异常有哪些


【导语】在进行Java编程的过程中,我们需要通过代码编写进行程序的运行,都是人工进行代码编写,所以会出现不少异常现象,这都是属于正常现象,但是遇到这些异常现象是需要大家了解并学会处理的,今天就先给大家介绍一下Java编程中常见异常有哪些?一起来看看吧。

Java中常见的异常:

1、空指针异常类:NullPointerException

2、数据类型转换异常:java.lang.ClassCastException

3、没有访问权限:java.lang.IllegalAccessException

4、方法的参数错误:java.lang.IllegalArgumentException

5、数组下标越界异常:java.lang.IndexOutOfBoundsException

6、文件已结束异常:EOFException

7、文件未找到异常:FileNotFoundException

8、字符串转换为数字异常:NumberFormatException

9、指定的类不存在: java.lang.ClassNotFoundException

10、实例化异常:java.lang.InstantiationException

Java中数据类型转换异常如何理解?

数据类型转换异常:java.lang.ClassCastException

当试图将对某个对象强制执行向下转型,但该对象又不可转换又不可转换为其子类的实例时将引发该异常,如下列代码。

Object obj = new Integer(0);

String str = obj;

Java中空指针异常类是什么意思?

空指针异常类:NullPointerException

调用了未经初始化的对象或者是不存在的对象。经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针,
即把数组的初始化和数组元素的初始化混淆起来了。

数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化, 依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话)。

Java常见异常有很多,以上这10种希望大家能够提前了解,这样能够帮助大家在实际编写代码过程中,更快的进行一场处理,加油!


java中自定义异常为何要继承exception类


java.lang.Exception类是Java中所有异常的直接或间接父类。即Exception类是所有异常的根类。
1、异常的分类:
① 非运行时异常(Checked Exception)
② 运行时异常(Runtime Exception/Unchecked Exception)
public class Exception
extends Throwable
Exception 类及其子类是 Throwable 的一种形式,它指出了合理的应用程序想要捕获的条件。
public class RuntimeException
extends Exception
RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。
可能在执行方法期间抛出但未被捕获的 RuntimeException 的任何子类都无需在 throws 子句中进行声明。
a) RuntimeException类直接继承自Exception类,称为运行时异常。Java中所有的运行时异常都直接或间接的继承自RuntimeException.
Java中所有的异常类都直接或间接的继承自Exception。
2、异常的处理:
对应非运行时异常,必须对其进行处理。处理方式有两种:
使用try…catch…finally语句块进行捕获
在产生异常的方法所在的方法声明throws Exception
对于运行时异常,可以不对其进行处理,也可以对其进行处理。一般情况下都不对其进行处理。
3、捕获异常:
try {
FileInputStream fs = new FileInputStream(“D:/temp/a.txt“);
} catch (FileNotFoundException e) {
System.out.println(“catch...“);
e.printStackTrace();
} finally{
System.out.println(“finally...“);
}
4、抛出和捕获异常:
4.1、把异常交给JVM处理:
public class ExceptionTest {
public static void execute() throws Exception {
System.out.println(“execute...“);
throw new Exception();
}
public static void main(String args) throws Exception {
execute();
}
}
4.2、或者使用try catch语句块捕获异常:
public class ExceptionTest {
public static void execute() throws Exception {
System.out.println(“execute...“);
throw new Exception();
}
public static void main(String args) {
try {
execute();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
5、自定义异常:
自定义异常通常是定义一个继承自Exception类的子类。一般情况下我们都会直接继承自Exception类,而不会继承某个运行时的异常类。
5.1、创建自定义异常:
public class MyException extends Exception{
public MyException(){
super();
}
public MyException(String msg){
super(msg);
}
}
5.2、在类中使用异常:
public class ExceptionTest {
public static void execute(String a) throws MyException {
System.out.println(“execute...“);
if(“true“.equals(a)){
throw new MyException(“参数不能为 true“);
}
}
}
5.3、捕获自定义异常:
public static void main(String args) throws MyException {
execute(“true“);
}
6、异常使用注意事项:
当使用多个catch语句块来捕获异常时,需要将父类的catch语句块放到子类型的catch块之后,这样才能保证后续的catch可能被执行,否则子类型的catch将永远无法到达,Java编译器会报编译错误。
如果try语句块中存在return语句,那么首先会执行finally语句块中的代码,然后才返回。
如果try语句块中存在System.exit(0)语句,那么久不会执行finally语句块的代码了,因为System.exit(0)会终止当前运行的JVM。程序在JVM终止前结束执行。

java中error与exception的区别是什么


一、含义不同:

Error类一般是与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等。对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和和预防,遇到这样的错误,建议让程序终止。

Exception类表示程序可以处理的异常,可以捕获且可能恢复。遇到这类异常,应该尽可能处理异常,使程序恢复运行,而不应该随意终止异常。

二、用途不同:

Exception和Error体现了Java平台设计者对不同异常情况的分类。Exception是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,进行相应处理。

Error是指在正常情况下,不大可能出现的情况,绝大部分的Error都会导致程序处于非正常的、不可恢复状态。既然是非正常情况,所以不便于也不需要捕获,常见的比如OutOfMemoryError之类,都是Error的子类。

好处

让异常处理与业务逻辑的主线分离,我们可以对可以遇见的异常作分支处理,其实将业务逻辑与异常处理分离也是Exception设计的主旨,其次Java Exception 不需要像C语言那样在程序的多个地方去检测同一个错误,并就地作异常的处理,相比老式的错误处理,现行的错误处理的结构则来的更加清晰。

以上内容参考:百度百科-Exception


Java中Exception是什么


Exception是JAVA异常类
是Throwable的子类(Error也是她的子类,Error是比较严重的错误)
异常分为普通异常和运行时异常,运行时异常我们可以不处理,可以让虚拟机来管。
普通异常我们必须捕获(try{}catch(Exception
e){}finally{})

常见JAVA运行时异常有哪些


1、五种常见的异常:ClassCastException(类转换异常)、IndexOutOfBoundsException(数组越界异常)、NullPointerException(空指针异常)、ArrayStoreException(数据存储异常,操作数组时类型不一致)、BufferOverflowException(还有IO操作的,缓冲溢出异常)。

2、java运行时异常是可能在java虚拟机正常工作时抛出的异常。java提供了两种异常机制。一种是运行时异常(RuntimeExepction),一种是检查式异常(checked execption)。

检查式异常:我们经常遇到的IO异常及sql异常就属于检查式异常。对于这种异常,java编译器要求我们必须对出现的这些异常进行catch 所以 面对这种异常不管我们是否愿意,只能自己去写一堆catch来捕捉这些异常。

运行时异常:我们可以不处理。当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去处理过NullPointerException异常,它就是运行时异常,并且这种异常还是最常见的异常之一。

扩展资料:

Java特点

Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理。Java还剔除了C++的操作符过载和多继承特征,并且不使用主文件,免去了预处理程序。

因为Java没有结构,数组和串都是对象,所以不需要指针。Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更多的时间和精力花在研发上。

参考资料:百度百科-Java


Java的Exception构造方法


Exception()
构造详细消息为 null 的新异常。
Exception(String message)
构造带指定详细消息的新异常。
Exception(String message, Throwable cause)
构造带指定详细消息和原因的新异常。
Exception(Throwable cause)
根据指定的原因和 (cause==null ? null : cause.toString()) 的详细消息构造新异常(它通常包含 cause 的类和详细消息)。

推荐阅读