ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java异常体系

2022-02-11 11:00:21  阅读:151  来源: 互联网

标签:体系 语句 java 抛出 try println catch 异常


一、概述:Java的异常体系

java中Throwable是异常体系的超类,直接来源于Object类,Throwable可以分为Error类和Exception类,分别表示错误和异常

1、Error类是程序无法处理的错误,由jvm产生和抛出,遇到错误,jvm一般会选择终止线程

2、Exception类分为RuntimeException(运行时异常)和非运行时异常

RuntimeException:例如空指针异常,数组越界异常等,开发时应避免此类异常。也称为非受检异常。

非运行时异常:就是Exception类中除运行类异常之外的异常,如果不处理这类异常,程序都无法编译通过,例如io异常和sql异常。


try,catch语句

如果没有try、catch包裹,代码就不会执行打印语句,如果有try语句,那么捕获异常后就会打印出来,不会影响后续代码的执行

public static void main(String[] args) {
        int[] a = new int[5];
        for (int i = 0; i <10; i++) {
            a[i] = i;
        }
//        try {
//            for (int i = 0; i <10; i++) {
//                a[i] = i;
//            }
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//
       System.out.println("----------------");
    }

1、throws抛出异常

如果定义了一个B方法,然后通过throws抛出异常,当B方法产生了异常,throws就会向上抛出这个异常,比如A方法调用了B方法,B方法抛出的异常就需要A来捕获处理。

public static void main(String[] args) {
		
		Test test = new Test();
		try {
			test.run();
		} catch (CloneNotSupportedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		System.out.println("--------------");
		
	}
	
	public void run() throws CloneNotSupportedException {
		this.sun();
	}
	
	public void sun() throws CloneNotSupportedException {
		User user01 = new User();
		User user02 = user01.clone();
		System.out.println(user01);
		System.out.println(user02);
		user01.ChangedPerson("李四");
		System.out.println(user01.getPerson());
		System.out.println(user02.getPerson());
	}


2、throw抛出异常

我们可以在方法内,手动抛出一个异常,在上层捕获,写在方法的内部,抛出异常后,后面的代码不会执行,然后就是进行异常的处理。在catch语句中处理。同样也可以在catch语句中向上层抛出一个异常。

Try{

//可能会发生异常的代码

}catch(Exceptione){

      throw newException(e);

}


异常处理的步骤:

try语句中是可能会产生异常的代码,catch语句中如果产生了这个异常,执行对应的操作语句,finally语句,就是一定会执行的代码。

 

try catch语句使用的方式 

1、try,catch,finally均不能单独使用,try···catch    //  try···catch ···finally

2、try,catch,finally中变量的作用域均是内部的代码块,如果在这三个块中访问,则需要将变量定义在外部。

3、多个catch块时最多只会匹配一个catch块,其余不会执行

4、先catch子类异常,再catch父类的异常

try、catch捕获示意图:

标签:体系,语句,java,抛出,try,println,catch,异常
来源: https://blog.csdn.net/m0_52151777/article/details/122874717

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有