关于Java运行异常的处理,新手学习就经常遇到,突然冒出一大串英文令人措不及防。
下面我举几个常见的例子并解决,希望对新手学习有帮助,老手也可以复习复习。
-
NullPointerException(空指针异常):当尝试访问一个空对象或者空指针时,会抛出该异常。处理方式:在使用对象之前,先判断对象是否为空。
解决方法
try {
String str = null;
System.out.println(str.length());
}
catch (NullPointerException e)
{
System.out.println("出现空指针异常:" + e.getMessage());
}
2.ArrayIndexOutOfBoundsException:当尝试访问数组中不存在的位置时引发的异常。
解决方法
try {
int[] arr = {1, 2, 3};
System.out.println(arr[3]);
}
catch (ArrayIndexOutOfBoundsException e)
{
System.out.println("出现数组越界异常:" + e.getMessage());
}
3.ArithmeticException:当出现算术错误时引发的异常,例如除以零。
解决方法
try {
int a = 10 / 0;
}
catch (ArithmeticException e)
{
System.out.println("出现算术异常:" + e.getMessage());
}
4.FileNotFoundException:当尝试打开不存在的文件时引发的异常。
解决方法
try {
File file = new File("test.txt");
FileReader reader = new FileReader(file);
}
catch (FileNotFoundException e)
{
System.out.println("出现文件不存在异常:" + e.getMessage());
}
5.ClassCastException:当尝试将对象强制转换为不兼容的类型时引发的异常。
解决方法
try {
Object obj = "Hello";
Integer i = (Integer) obj;
}
catch (ClassCastException e)
{
System.out.println("出现类型转换异常:" + e.getMessage());
}
6.IllegalArgumentException:当传递给方法的参数不合法时引发的异常。
解决方法
try {
int age = -10; if (age < 0)
{
throw new IllegalArgumentException("年龄不能为负数");
}
}
catch (IllegalArgumentException e)
{
System.out.println("出现非法参数异常:" + e.getMessage());
}