在Java学习过程中,我们会碰到各种各样的异常,今天华清Java学院小编将面试过程中经常遇到的Java常见异常做一个整理并提供相应的示例,方便大家理解和操作。
Java常见异常类型1:NullPointerException
Java空指针异常,属于Java运行时异常。
这个异常在编程时也经常遇到,异常的解释是 “程序遇上了空指针 “,简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在调用数组这些操作中,对数组操作中出现空指针,很多情况下是一些刚开始学习编程的人常犯的错误,即把数组的初始化和数组元素的初始化混淆起来了。数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话)。
Java空指针异常举例:
public static void main(String[] args) {
String str = null;
//此处报空指针异常
System.out.println(str.length());
}
控制台输出的异常信息为:
Exception in thread "main" java.lang.NullPointerException
at cn.com.gjw.MyClass.main(MyClass.java:7)
Java常见异常类型2:ClassCastException
类型强制转换异常,对Java的一些语法知识不太熟悉的时候会发生的异常,比如有个String temp="abc"; 如果设为(int)temp就会报错了,因为它们类型不一样,但是设为(object)temp就可以,因为object是它们的父类
Java类型强制转换异常举例:
public static void main(String[] args) {
// 类型强制转换异常
Object x = new String("String");
System.out.println((Integer) x);
}
控制台输出的异常信息为:
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
at cn.com.gjw.MyClass.main(MyClass.java:7)
Java常见异常类型3:ArrayIndexOutOfBoundsException
数组下标越界异常。特别常见的一个异常,粗心的程序员都会犯的错误。
这个异常我们在操作数组的时候会经常遇到,异常的解释是“数组下标越界“,现在程序中大多都有对数组的操作,因此在调用数组的时候一定要认真检查,看自己调用的下标是不是超出了数组的范围,一般来说,显示(即直接用常数当下标)调用不太容易出这样的错,但隐式(即用变量表示下标)调用就经常出错了,还有一种情况,是程序中定义的数组的长度是通过某些特定方法决定的,不是事先声明的,这个时候,好先查看一下数组的length,以免出现这个异常。
数组下标越界异常举例:
public static void main(String[] args) {
int arr[] = {1,2};
// 此处报数组下标越界异常
System.out.println(arr[2]);
}
控制台输出的异常信息为:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at cn.com.gjw.MyClass.main(MyClass.java:7)
Java常见异常类型4:ArithmeticException
算术运算异常,算术跟我水平差不多的你有没有犯过类似的错误呢??
Java算术运算异常举例:
public static void main(String[] args) {
// 整数0做了分母,报算术运算异常
System.out.println(1 / 0);
}
控制台输出的异常信息为:
Exception in thread "main" java.lang.ArithmeticException: / by zero
at cn.com.gjw.MyClass.main(MyClass.java:6)
Java常见异常类型5:NumberFormatException
数字格式异常,什么是数字格式异常呢?一个例子说明一切。
数字格式异常举例:
public static void main(String[] args) {
// 将字符串“it”转换为Integer类型的,当然会报数字格式异常啦
System.out.println(Integer.parseInt("it"));
}
控制台输出的异常信息为:
Exception in thread "main" java.lang.NumberFormatException: For input string: "it"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.parseInt(Integer.java:527)
at cn.com.gjw.MyClass.main(MyClass.java:6)
Java常见异常类型6:IllegalAccessException(安全权限异常)
这个异常的解释是“没有访问权限“,当应用程序要调用一个类,但当前的方法即没有对该类的访问权限便会出现这个异常。对程序中用了Package的情况下要注意这个异常。
Java常见异常类型7: IOException(输入输出异常)
一般读写文件会出现这个异常,比如你想从磁盘上读一个文件到你写的程序,如果硬盘上没有这文件,java虚拟机就会报这个异常。
以上是Java中常见的七种异常及相应的例子,Java中还有很多类似的异常等着我们去发现,这只是冰山一角中的一点。。。
热点新闻