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,如需转载请自行联系原作者
相关文章
|
2月前
|
人工智能 运维 Java
Java异常
Java异常
39 0
|
3月前
|
监控 Java 程序员
对Java异常的理解
JAVA小白手写总结
|
3月前
|
存储 Java 编译器
Java异常到底是个啥——一次异常引发的思考
这篇文章主要通过三个部分阐释Java异常 - Java中异常的分类,异常的处理机制 - 异常的处理规范和实战,如何利用Springboot框架处理异常 - 从JVM的角度分析异常机制,包括`try-catch`, `try-finally`, `try-with-resource`的字节码分析
15 0
Java异常到底是个啥——一次异常引发的思考
|
8月前
|
Java 编译器 程序员
JAVA异常详解
JAVA异常详解
30210 11
|
4月前
|
监控 Java 程序员
Java异常你还没有了解吗?
Java异常你还没有了解吗?
46 0
|
Java 程序员 编译器
Java异常你了解吗?
1.java异常引入 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。 比如说,你的代码少了一个分号,那么运行出来结果是提示是错误 java.lang.Error;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出java.lang.ArithmeticException 的异常。 异常发生的原因有很多,通常包含以下几大类:
129 1
Java异常你了解吗?
|
存储 安全 Java
Java异常详解
Java异常详解
Java异常详解
|
监控 Java 数据库连接
Java异常篇
异常的概述 ​ 异常就是程序出现了不正常的情况
Java异常篇
|
Java 程序员 开发者
最常见的10种Java异常问题
最常见的10种Java异常问题
106 0
最常见的10种Java异常问题