Java-异常

Java-异常

1.概念

在这里插入图片描述

2.异常体系结构

 * java.lang.Throwable
 * 		|-----java.lang.Error:一般不编写针对性的代码进行处理。
 * 		|-----java.lang.Exception:可以进行异常的处理
 * 			|------编译时异常(checked)
 * 					|-----IOException
 * 						|-----FileNotFoundException
 * 					|-----ClassNotFoundException
 * 			|------运行时异常(unchecked,RuntimeException)
 * 					|-----NullPointerException
 * 					|-----ArrayIndexOutOfBoundsException
 * 					|-----ClassCastException
 * 					|-----NumberFormatException
 * 					|-----InputMismatchException
 * 					|-----ArithmeticException

3.code举例

  • 错误
package p8exception;

public class ErrorTest {
    public static void main(String[] args) {
        // 栈溢出 java.lang.StackOverflowError
		 main(args);
        // 堆溢出 java.lang.OutOfMemoryError(简称OOM)
        Integer[] arr = new Integer[1024*1024*1024];

    }
}
  • 异常
package p8exception;

import org.junit.Test;
import java.io.File;
import java.io.FileInputStream;
import java.util.Date;
import java.util.Scanner;


public class ExceptionTest {
    //******************************************编译时异常******************************//
    //FileNotFoundException 编译时异常
    @Test
    public void test7() {
        File file = new File("hello.txt");
        FileInputStream fils = new FileInputStream(file);
        int data = fils.read();
        while (data != -1) {
            System.out.print(data);
        }
        fils.close();
    }


    //******************************************运行时异常******************************//
    //空指针异常 java.lang.NullPointerException
    @Test
    public void test1() {
        int[] arr = null;
        System.out.println(arr[3]);

        String str = null;
        // 调用null 的 toString方法
        System.out.println(str.toString());
    }

    //数组角标越界 java.lang.ArrayIndexOutOfBoundsException
    @Test
    public void test2() {
//        int[] arr = new int[10];
//        System.out.println(arr[10]);
        // 字符串角标越界 java.lang.StringIndexOutOfBoundsException
        String str = "aka";
        System.out.println(str.charAt(3));
    }

    // 类型转换异常 java.lang.ClassCastException
    @Test
    public void test3() {
        Object obj = new Date();
        String str = (String)obj;

    }


    // 类型转换异常 NumberFormatException
    @Test
    public void test4() {
        String str = "abc";
        int num = Integer.parseInt(str);
    }


    // 输入类型不匹配 InputMismatchException
    @Test
    public void test5() {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入数字:");
        int score = scanner.nextInt();
        System.out.println(score);

    }

    //数学异常  java.lang.ArithmeticException
    @Test
    public void test6() {
        int a = 10;
        int b = 0;
        System.out.println(a/b);

    }

}
n
    @Test
    public void test6() {
        int a = 10;
        int b = 0;
        System.out.println(a/b);

    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值