其他分享
首页 > 其他分享> > Throwable类、异常处理try…catch、JVM的默认处理方案、Throws和Throw的区别、自定义异常

Throwable类、异常处理try…catch、JVM的默认处理方案、Throws和Throw的区别、自定义异常

作者:互联网

Throwable

所在包:java.lang
			java.lang.Object
				java.lang.Throwable
public class Throwable 
	   extends Object 
	   implements Serializable

Throwable的两个需要了解的子类:

Error:
public class Error extends Throwable    //计算机算力或编译器无法控制的错误
-------------------------------------------------------------------------------------------------
Exception:
public class Exception extends Throwable   //异常类、表示程序本身可以解决的问题

Exception的两个需要知道的子类:

Throwable的常用方法(通过Exception的实例对象来调用以下方法):

方法名作用
public String getMessage()返回此throwable的详细信息字符串
public String toString()返回此可抛出异常的简短描述
public void printStackTrace()把异常的错误信息输出在控制台
public void printStackTrace(PrintStream ps)通常用该方法将异常内容保存在日志文件中,以便查询

异常处理try…catch用法

格式:
try{
	可能出现异常的代码;
}catch(异常类名 对象名){  //出现异常,会自动生成一个异常类对象,该异常对象将被提交给JAVA运行时系统当JAVA运行时系统接收到异常对象时,会到catch中去找匹配的异常类,找到后进行异常的处理
	异常的处理代码;
}finally{...}   //最后一定会执行的代码除非JVM提前退出

代码实例:

public static void main(String[] args){
	System.out.println("开始");
	method();
	System.out.println("结束");
}
public static void method(){
	try{
		int[]arr={1,2,3};
		System.out.println(arr[3]);//ArrayIndexOutOfBoundsException()
	}catch(ArrayIndexOutOfBoundsException e){
		System.out.println("访问错误");
		//e.printStackTrace();     printStackTrace()方法是把异常的错误信息输出在控制台
	}
}

Throws异常的处理方法

格式:方法名 throw 异常名

Throws和Throw的区别:

public static void method() throws ArithmeticException {// 跟在方法声明后面,后面跟的是异常类名
        int a=10;
        int b=0;
        if(b==0) {
        	throw new ArithmeticException();用在方法体内,后面跟的是异常类对象名 
        }else {
        	System.out.println(a/b);
        }
	}
}

自定义异常

格式:
public class 异常名 extends Exception{
	无参构造();
	带参构造(E){
		super(E);
	}
}

代码示例:

public class ScoreException extends Exception{
	ScoreException();
	ScoreException(String s){
		Super(s);
	}
}
public class Teacher{              //throws用在方法声明后面
	public void score(int score) throws ScoreException{
		if(score<0||score>100){
			throw new ScoreException("你给的分数有误");
		}else{
			System.out.println("分数无误");
		}
	}
}
编译时异常和运行时异常的区别
	编译时异常:必须显示处理,否则程序就会发生错误无法通过编译
	运行时异常:无需显示处理,也可以和编译时异常一样处理

标签:自定义,处理,public,编译,catch,Throwable,异常,Throw
来源: https://blog.csdn.net/qq_46568687/article/details/120754237