Java异常-阿里云开发者社区

开发者社区> 桃子红了呐> 正文

Java异常

简介:
+关注继续查看

异常父子关系

package ch10;
/**
 * Created by Jiqing on 2016/11/30.
 */
public class DivTest {
    public static void main(String[] args) {
        try {
            int a = Integer.parseInt(args[0]);
            int b = Integer.parseInt(args[1]);
            int c = a/b;
            System.out.println("您输入的两个数相除的结果是:"+c);
        } catch (IndexOutOfBoundsException ie) {
            System.out.println("数组越界:运行程序输入的参数个数不够");
        } catch (NumberFormatException ne) {
            System.out.println("数字格式异常:程序只能接收整数参数");
        } catch (ArithmeticException ae) {
            System.out.println("算术异常");
        } catch (Exception e) {
            System.out.println("未知异常");
        }
    }
}

// 如果运行该程序输入的参数不够,将会发生数组越界异常,用IndexOutOfBoundsException
// 如果运行该程序输入的参数不是数字,而是字母,将发生数字格式异常,用NumberFormatException
// 如果该程序输入的第二个参数是0,将发生除0异常,用ArithmeticException
// 如果出现其他异常,用Exception

牢记并掌握上门三种常见的运算异常。

捕获多个异常

package ch10;

/**
 * Created by Jiqing on 2016/11/30.
 */
public class MultiExceptionTest {
    // 同时捕获多个异常
    public static void main(String[] args) {
        try {
            int a = Integer.parseInt(args[0]);
            int b = Integer.parseInt(args[1]);
            int c = a/b;
            System.out.println("您输入的两个数相除的结果是:"+c);
        } catch (IndexOutOfBoundsException | NumberFormatException | ArithmeticException ie) {
                System.out.println("程序发生了数组越界、数字格式异常、算术异常之一");
                // 捕获多异常,异常变量有final修饰
        } catch (Exception e) {
                System.out.println("未知异常");
                // 捕获单异常,异常变量没有final修饰
        }
    }
}

抛出异常throws

package ch10;

import java.io.FileInputStream;
import java.io.IOException;

/**
 * Created by Jiqing on 2016/11/30.
 */
public class ThrowsTest {
    // 一旦使用throws抛出异常,程序就无法使用try catch来捕获该异常了
    public static void main(String[] args)
        throws IOException
    {
        FileInputStream fis = new FileInputStream("a.txt");
    }
}

自行抛出异常throw

package ch10;

/**
 * Created by Jiqing on 2016/12/1.
 */
public class ThrowTest {
    public static void main(String[] args)
    throws Exception // 抛出异常
    {
        // 自行抛出异常
        throw new Exception("异常了");
    }
}

Java异常跟踪栈

package ch10;

import ch6.Enum.SeasonEnum;

/**
 * Created by Jiqing on 2016/12/1.
 */
class SelfException extends RuntimeException {
    SelfException() {}
    SelfException(String msg) {
        super(msg);
    }
}

public class PrintStackTraceTest {
    // Java异常跟踪栈
    // 异常从发生异常的方法逐渐向外传播,首先是调用者,然后传给其调用者,直至main方法,如果main方法异常没有处理,JVM会中止该程序,并打印异常跟踪栈信息
    // 栈,队列  队列先进先出,栈先进后出

    public static void main(String[] args) {
        firstMethod();
    }

    public static void firstMethod() {
        secondMethod();
    }

    public static void secondMethod() {
        thirdMethod();
    }

    public static void thirdMethod() {
        throw new SelfException("自定义异常信息");
    }

//    Exception in thread "main" ch10.SelfException: 自定义异常信息
//    at ch10.PrintStackTraceTest.thirdMethod(PrintStackTraceTest.java:29)
//    at ch10.PrintStackTraceTest.secondMethod(PrintStackTraceTest.java:25)
//    at ch10.PrintStackTraceTest.firstMethod(PrintStackTraceTest.java:21)
//    at ch10.PrintStackTraceTest.main(PrintStackTraceTest.java:17)
}



本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/6120225.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Spring Boot 基础教程:配置详解
本文主要对 Spring Boot 项目中的配置文件进行了简单的介绍,并学习如何自定义属性并配置多环境项目,最后则是对比了当前主流的两种方式不同格式配置文件 yml 和 properties 的异同。
5 0
Spring Boot 基础教程:集成 Swagger2,构建强大的 API 文档
主要对 Swagger 进行了简单介绍,并用 Spring Boot 集成 Swagger,同时还进行简单的测试,构建我们自己的 API 接口文档。
6 0
冬季实战营学习报告 第一期:从零到一上手玩转云服务器
这一期训练营从1月17号开始,为期5天。主要内容是了解学习阿里云的云服务(ECS) 因为提前加入了阿里云社区活动群,管理员每天都会提醒我们登录账号打卡学习,这里感谢管理员对我们的监督😊😊。
14 0
Spring Boot 基础教程:使用 Swagger3 生成 API 接口文档
主要介绍如何使用 Spring Boot 集成 Swagger3,构建我们自己的 API 接口文档,并对比了 Swagger2 和 Swagger3 的区别,让我们从 Swagger2 向 Swagger3 过渡更加顺滑。
5 0
相约在冬季实战营——第一期学习报告
冬奥云小宝带你玩转五期实战营 覆盖五大技术方向 “0成本”实践学习 快速晋级为专业的“云上开发者” -- 摘自云起冬季实战营https://developer.aliyun.com/adc/series/wintercamp
12 0
我的ECS使用体验
在阿里云ECS服务器使用中学习和收获了很多。
4 0
漫谈“架构团队”之组织架构(下)
漫谈“架构团队”之组织架构(下)
4 0
4269
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载