Java异常简单理解

在这里插入图片描述

文章目录

  • 前言
  • 异常
    • 编译时错误
    • 运行时错误
    • 逻辑型错误
  • Java中的Throwable
    • Error
    • Exception
      • 运行时异常
      • 非运行时异常
  • 异常处理
    • 格式
    • 简单使用
  • 结语

前言

在Java开发中,经常会遇到错误,这个时候就要学到异常处理,当然,学异常处理之前,我们应该先学学异常是什么~

异常

异常就是我们在写代码的时候,爆红啦,高亮啦什么的,还有运行的时候碰到的各种报错啦

我们经常会因为各种各样的报错而头疼——哦!天呐!又报错了!

但是我们应该想想好的,我们编程水平不也随着解决各种各样的报错而提高了吗?

当然我们也可以通过某些方式来避免这种异常,当然这是我们在解决了许许多多的报错后的事啦,也就是现在!是的没错就是现在!O(∩_∩)O哈哈~

一般分为三个类型:编译时错误 、运行时错误 、逻辑型错误

编译时错误

就是在写代码的时候,出现了语法上的错误,比如在定义变量的时候

int i = 1

在这里,我们就犯了个编译时的错误,少打了一个作为每句表达式结束的英文分号

运行时错误

就是语法上没有出现错误,但是编译的时候会出现错误,比如

double[] a =  {
     1.0, 2.0};
System.out.println(a[3]);

在这里,虽然不会爆红,但是却会在运行的时候出现错误

Index 3 out of bounds for length 2

意思是索引超出范围,我们的数组只有两个长度,却查找第四个元素,很明显是不对的

逻辑型错误

就是我们的代码不符合逻辑

int a = 1;
int b = 0;
System.out.println(a/b);

就会出现错误

/ by zero

Java中的Throwable

可分为Error和Exception两种,Throwable是Error和Exception的共同父类

Error

Error为错误,是程序无法进行处理的

一般遇到错误,不应该使用异常处理try…catch…

而是修改源代码,进行改良

Error有三个子类:

  • VirtualMachineError(虚拟机错误)
  • OutOfMenmoryReeor(内存溢出)
  • ThreadDeath(线程死锁)

目前我只见过内存溢出错误,通常是因为某些原因,程序出现死循环导致的

Exception

Exxception可以通过代码来避免,分成运行时异常和非运行时异常

运行时异常:RuntimeException

非运行时异常:IOException、SQLException、、

运行时异常

码代码的时候,编辑器不会给你提示,但是会出现错误

  1. NullPointerException(空指针异常)
    比如在定义了一个方法并使用的时候,传递的参数为空
public class Ex4_26 {
     
    public static void main(String[] args) {
     
        Integer a = null;
        Integer b = 1;
        System.out.println(jiSuan(a,b));
    }
    public static Integer jiSuan(Integer a, Integer b){
     
        Integer c = a + b;
        return c;
    }
}

报错了:
在这里插入图片描述

  1. ArrayIndexOfBoundsException(数组下标越界异常)
    我觉得我不用多说,看中文名字应该就知道这是个啥了,不过我还是大发慈悲的决定上代码
public class Ex4_26 {
     
    public static void main(String[] args) {
     
        int[] a = new int[10];
        System.out.println(a[10]);
    }
}

会报错:
在这里插入图片描述

  1. ArithmeticException(算术异常)
    这个上面也有例子,被除数为0 的情况,就不多做赘述了
  2. ClassCastException(类型转换异常)

如果出现运行时异常,通常是程序员的问题,因为这些都是可以通过逻辑上的处理而避免

非运行时异常

IOException(IO异常)、SQLException(SQL异常)

异常处理

我们的程序遇到这种异常通常会直接结束,并会返回报错信息给你
如果我们想要让我们的程序继续运行,我们就需要通过代码对这些异常进行处理

格式

try {
     
	可能会遇到异常的代码块
}catch (){
     
	遇到异常之后,会做的事情
}finally {
     
	不管会不会出现异常都会进行的操作
}

简单使用

public class Ex4_26 {
     
    public static void main(String[] args) {
     
        String[] a = new String[10];
        try {
     
            System.out.println(a[10]);
        }catch (ArrayIndexOutOfBoundsException e){
     
        	System.out.println(e);
            System.out.println("下标越界啦!");
        }finally {
     
            System.out.println("不管下标是否越界都会执行");
        }
    }
}

可以清晰地看到,我们的数组长度只有10,而下标是从0开始的,所以我们查看下标为10的元素的时候,就会出现数组下标越界异常,因此那行代码就是错的,不会被执行,会执行下面的代码

在这里插入图片描述

结语

这两天学校开了运动会,有亿点点忙哈哈
希望大家能够多使用异常处理,这对我们的变成生涯很有帮助!
xdm,再见啦·

你可能感兴趣的:(Java基础语法,java)