异常

异常是一种特殊的对象,类型为java.lang.Exception,或其子类,是指在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序

异常处理

Java 编程语言使用异常处理机制为程序提供了错误处理的能力

过程:

通过 try catch finally throws throw 进行异常处理

try:内放可能出现异常的代码块,并执行这些代码块

catch:捕获异常,内放处理方式

finally:无论如何,都执行的代码块,通常会把释放资源的代码放里面

public String getString(){
   try{}
    catch{}
    finally{
    return "-1"; 
        }
 //try 和catch里面就不用放return了
}

程序没有异常仅此一种方法执行不到

System.exit(21);
//整个应用程序退出
import java.util.Scanner;

public class Main {
    public static void main(String[] args){
        Main main=new Main();
       String str= main.Sum();
    }
    public String Sum(){
        Scanner sc=new Scanner(System.in);
        try{
            int n=sc.nextInt();
        }
        catch(Exception e){
            System.out.println("53454");
        }
        finally {
//            return "e";
            System.exit(-1);
        }
    }
}

throws:放在方法的头部,用来声明异常,throws 声明某个方法可能抛出的各种异常,多个异常用逗号隔开

throw:手动抛出异常

throws和throw的区别:

throws放在方法名后面,throw放在方法内部

throws声明异常类型,可以声明好几个,throw生成并抛出异常,一次只能抛出一个

try—catch的三种情况:

1.正常

2.出现异常

3.异常类型不匹配

catch中处理异常常用方法:

1.用户自定义处理,比如输出XXX

2.void printStackTrace() 输出异常堆栈信息

3.String getMessage() 返回异常信息的字符串,是printStcakTrace()的输出信息的一部分

4.Exception 异常层次结构的父类

5.ArithmeticException 算术错误情形,如以零作除数

6.ArrayIndexOutOfBoundsException 数组下标越界

7.NullPointerException 尝试访问 null 对象成员

8.ClassNotFoundException 不能加载所需的类

9.IllegalArgumentException 方法接收到非法参数

10.ClassCastException 对象强制类型转换出错

11.NumberFormatException 数字格式转换异常,如:把 "abc" 转换成数字

try—catch—finally执行顺序:

public class FinallyTest  
{
	public static void main(String[] args) {
		 
		System.out.println(new FinallyTest().test());;
	}
 
	static int test()
	{
		int x = 1;
		try
		{
			x++;
			return x;
		}
		finally
		{
			++x;
		}
	}
}
//在try语句中,在执行return语句时,要返回的结果已经准备好了,就在此时,程序转到finally执行了。
//在转去之前,try中先把要返回的结果存放到不同于x的局部变量中去,执行完finally之后,
//在从中取出返回结果, 因此,即使finally中对变量x进行了改变,但是不会影响返回结果。 它应该使用栈保存返回值。

 

 异常分为 Checked 异常和运行时异常
Checked 异常必须捕获或者声明抛出
运行时异常不要求必须捕获或者声明抛出

异常处理原则

异常只能用于非正常情况,不要将过于庞大的代码块放在 try 中

 在 catch 中指定具体的异常类型

 需要对捕获的异常做处理

 

posted on 2025-02-19 13:21  fafrkvit  阅读(12)  评论(0)    收藏  举报