java程序的执行过程中如出项异常事件,可以生成一个异常类对象,出现什么异常就产生一个什么类型的异常类对象,该异常对象封装了异常事件的信息并将被提交给java运行时系统,这个过程称为抛出(throw)异常,把异常交给运行时系统,
当java运行时系统接收到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交给其处理,这一过程称为捕获(catch)异常
运行时系统默认的处理,也就是没有try/catch的时候
public class Limin {
public static void main(String[] args) {
int[] arr = {1,2,3};
System.out.println(arr[4]);
}
}
当出现异常时,java会自动的生成一个异常对象,然后交给运行时系统,然后运行时系统去找处理异常的方法,如果没有处理异常的方法,也就是默认的情况下,运行时系统在默认的情况下会把异常对象包装的信息打印在控制台上,如下:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at Test.Limin.main(Limin.java:6)
public class Limin {
public static void main(String[] args) {
try { //try 程序中可能出现异常的地方
int[] arr = {1,2,3};
System.out.println(arr[4]);
}
catch (ArrayIndexOutOfBoundsException ae) //当出现异常时,会产生一个相应的异常对象,然后交给运行时系统,运行时系统会寻找处理异常的方法,找到后,然后运行时系统,再把这个异常对象 传给ae, 然后ae 再打印一些异常信息。catch 逮到错误后想怎么办,就怎么办了
{
System.out.println("出现错误,请与管理员联系");
ae.printStackTrace(); //把错误的堆栈信息打印出来,堆栈信息就是这个错误有可能是上个错误引起的,上个错误有可能是上上个错误引起的,到底是由哪个错误引起的,把这些
信息全部打印出来,这些信息一般是程序员调试的提示,这些信息对于调试很有用,对于系统运行时默认打印出来的错误信息和printStackTrace打印的一样,
}
}
}
java.lang.ArrayIndexOutOfBoundsException: 4
at Test.Limin.main(Limin.java:7)
System.out.println(ae.getMessage());
输出的结果就是 4 代表异常信息的内容
注意:
重写方法需要抛出与原来方法所抛出异常类型一致异常或不抛出异常
当java运行时系统接收到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交给其处理,这一过程称为捕获(catch)异常
运行时系统默认的处理,也就是没有try/catch的时候
public class Limin {
public static void main(String[] args) {
int[] arr = {1,2,3};
System.out.println(arr[4]);
}
}
当出现异常时,java会自动的生成一个异常对象,然后交给运行时系统,然后运行时系统去找处理异常的方法,如果没有处理异常的方法,也就是默认的情况下,运行时系统在默认的情况下会把异常对象包装的信息打印在控制台上,如下:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at Test.Limin.main(Limin.java:6)
public class Limin {
public static void main(String[] args) {
try { //try 程序中可能出现异常的地方
int[] arr = {1,2,3};
System.out.println(arr[4]);
}
catch (ArrayIndexOutOfBoundsException ae) //当出现异常时,会产生一个相应的异常对象,然后交给运行时系统,运行时系统会寻找处理异常的方法,找到后,然后运行时系统,再把这个异常对象 传给ae, 然后ae 再打印一些异常信息。catch 逮到错误后想怎么办,就怎么办了
{
System.out.println("出现错误,请与管理员联系");
ae.printStackTrace(); //把错误的堆栈信息打印出来,堆栈信息就是这个错误有可能是上个错误引起的,上个错误有可能是上上个错误引起的,到底是由哪个错误引起的,把这些
信息全部打印出来,这些信息一般是程序员调试的提示,这些信息对于调试很有用,对于系统运行时默认打印出来的错误信息和printStackTrace打印的一样,
}
}
}
java.lang.ArrayIndexOutOfBoundsException: 4
at Test.Limin.main(Limin.java:7)
System.out.println(ae.getMessage());
输出的结果就是 4 代表异常信息的内容
注意:
重写方法需要抛出与原来方法所抛出异常类型一致异常或不抛出异常