本篇文章为你整理了Java异常(java异常处理的三种方法)的详细内容,包含有java异常处理机制 java异常处理的三种方法 java异常处理 java异常体系 Java异常,希望能帮助你了解 Java异常。
RuntimeException:编译期间不检查,程序出现问题再修改代码
非RuntimeException:编译期间处理,否则程序不能通过编译,更不能运行
开始
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
at com.chawaner.test2.ExceptionDemo.method(ExceptionDemo.java:17)
at com.chawaner.test2.ExceptionDemo.main(ExceptionDemo.java:11)
//try...catch..处理异常
public class ExceptionDemo {
public static void main(String[] args) {
System.out.println("开始");
method();
System.out.println("结束");
public static void method (){
int[] arr = {1,2,3};
try {
System.out.println(arr[3]);
} catch (ArrayIndexOutOfBoundsException e) {
e.printStackTrace();
运行结果:当出现异常时,程序能继续往下执行
开始
java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
at com.chawaner.test2.ExceptionDemo.method(ExceptionDemo.java:18)
at com.chawaner.test2.ExceptionDemo.main(ExceptionDemo.java:11)
2. Throwable:所有异常的父类,包含的一些方法
public String getMessage() 返回异常信息
public String toString() 返回可抛出的简短说明
public void printStackTrace() 打印详细异常信息
public class ExceptionDemo {
public static void main(String[] args) {
System.out.println("开始");
method();
System.out.println("结束");
public static void method (){
int[] arr = {1,2,3};
try {
System.out.println(arr[3]);
} catch (ArrayIndexOutOfBoundsException e) {
//e.printStackTrace();
//返回异常信息
System.out.println("异常信息:"+e.getMessage());
//返回可抛出的简短说明
System.out.println("简短说明:"+e.toString());
//打印详细异常信息
e.printStackTrace();
运行结果:
开始
异常信息:Index 3 out of bounds for length 3
简短说明:java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
//详细异常信息
java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
at com.chawaner.test2.ExceptionDemo.method(ExceptionDemo.java:18)
at com.chawaner.test2.ExceptionDemo.main(ExceptionDemo.java:11)
3. 编译时异常和运行时异常的区别
运行时异常:
public class ExceptionDemo1 {
public static void main(String[] args) {
method();
public static void method (){
int[] arr = {1,2,3};
//这个索引越界了,但是写代码时没有报错,运行的时候才报错
//所以,这是个运行时异常
System.out.println(arr[3]);
运行结果:ArrayIndexOutOfBoundsException
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
at com.chawaner.test2.ExceptionDemo1.method(ExceptionDemo1.java:17)
at com.chawaner.test2.ExceptionDemo1.main(ExceptionDemo1.java:10)
编译时异常:不一定会出问题,但有可能会出问题
4. throws
有时候异常能够用try...catch...处理,有时候可能出现的异常是我们处理不了的,这个时候用throws解决。
在方法括号后跟上throws 异常类名
运行结果:throws可以解决编译时异常那个红色波浪线的提示。
Wed Nov 09 00:00:00 CST 2022
运行结果:运行时异常用throws解决不了,只是抛出异常。还得用try...catch...处理,才能在提示报错后,继续执行后面的程序。
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
at com.chawaner.test2.ExceptionDemo1.method(ExceptionDemo1.java:24)
at com.chawaner.test2.ExceptionDemo1.main(ExceptionDemo1.java:14)
总结:
编译时异常用throws或者try...catch...
try...catch...是有显示处理的,就是用try...catch...你可以自己处理异常
throws是抛出异常,控制台显示的是系统给的异常结果
IntNumber类,里面有个检查数字范围的方法checkNum(int i)
checkNum(int i)方法是由JException抛出的
JException抛出的异常结果显示为:输入的数字有误,范围应为:0-100
public class IntNumber {
public void checkNum(int i) throws JException{
if (i 0 i 100) {
//抛出异常,并显示自己写的异常结果信息
throw new JException("输入的数字有误,范围应为:0-100");
}else {
System.out.println("正常");
//测试类:输入数字,并检查数字的范围
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数字:");
int i = sc.nextInt();
IntNumber in = new IntNumber();
try {
//编译时异常
in.checkNum(i);
} catch (JException e) {
e.printStackTrace();
//运行结果:控制台显示了自定义异常类JException
//以及自己处理的异常显示结果:输入的数字有误,范围应为:0-100
请输入一个数字:
com.chawaner.test3.JException: 输入的数字有误,范围应为:0-100
at com.chawaner.test3.IntNumber.checkNum(IntNumber.java:12)
at com.chawaner.test3.Test.main(Test.java:18)
throws和throw的区别
以上就是Java异常(java异常处理的三种方法)的详细内容,想要了解更多 Java异常的内容,请持续关注盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。