常见的异常
1、算数异常
java.lang.ArithmeticException
public class Hi{
public static void main(String[] args) {
int num = 2/0;
}
}
//输出:EException in thread "main" java.lang.ArithmeticException: / by zero
at Hi.main(Hi.java:3)
2、数组越界异常
java.lang.ArrayIndexOutOfBoundsException
public class Hi{
public static void main(String[] args) {
int [] nums = {1,2,3,4};
int a = nums[-1];
}
}
//输出:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
at Hi.main(Hi.java:4)
3、类型转换异常
java.lang.ClassCastException:
public class Hi{
public static void main(String[] args) {
Object obj = new Integer(10);
String str = (String)obj;
}
}
//输出:Exception in thread "main" java.lang.ClassCastException:
该异常时向下转型(强制类型转换)可能出现的异常。
4、无属性异常
java.lang.NoSuchFieldException
import com.dao.IBaseDAO;
import java.lang.reflect.Field;
public class Test {
public static void main(String[] args) throws Exception{
Class<?> cls=Emp.class;
Field f = cls.getDeclaredField("empon");
System.out.println(f);
}
}
//输出:Exception in thread "main" java.lang.NoSuchFieldException: empon
5、无方法异常
java.lang.NoSuchMethodException
import java.lang.reflect.Field;
import java.lang.reflect.Member;
import java.lang.reflect.Method;
public class Test {
public static void main(String[] args) throws Exception{
Class<?> cls=Emp.class;
Method m = cls.getMethod("fun111");
System.out.println(m);
}
}
//输出:Exception in thread "main" java.lang.NoSuchMethodException: com.baidu.vo.Emp.fun111()
当使用反射法去访问一个类的方法的时候如果该方法不存在则出现该异常。
6、空指向异常
java.lang.NullPointerException
public class Test {
public static void main(String[] args) throws Exception{
Emp emp=null;
emp.fun();
}
}
//输出:Exception in thread "main" java.lang.NullPointerException
public class Hi{
public static void main(String[] args) {
int [] nums = null;
System.out.println("long"+nums.length);
}
}
//输出:Exception in thread "main" java.lang.NullPointerException
- 访问一个空对象的方法、或者属性的时候
- 访问一个空数组(没有创建该数组)元素或者下标时候会出现。
1. 访问一个空对象的方法或者属性
2. 访问了一个值为null的数组的长度时候会出现该异常。
7、数字格式化异常
java.lang.NumberFormatException
public class Hi{
public static void main(String[] args) {
String str ="1234sss";
Integer num = Integer.parseInt(str);
System.out.println(num);
}
}
//输出:Exception in thread "main" java.lang.NumberFormatException
该异常时将一个字符串类型的数据转换一个数字类型的数据可能出现的异常。
8、加载异常类
java.lang.ClassNotFoundException
package com.CoderLB;
import com.baidu.vo.Dept;
import com.baidu.vo.Emp;
import com.dao.IBaseDAO;
import java.lang.reflect.Field;
import java.lang.reflect.Member;
import java.lang.reflect.Method;
public class Test {
public static void main(String[] args) throws Exception{
Class<?> cls=Class.forName("com.baidu.vo.Empssss");
System.out.println(cls);
}
}
输出:Exception in thread "main" java.lang.ClassNotFoundException: com.baidu.vo.Empssss
当加载一个类的时候,如果该类不存在则出现该异常。