【安利Java零基础】java基础语法—20道常见异常库

作者简介:大家好呀!我是路遥叶子,大家可以叫我叶子哦!❣️    
个人主页:【路遥叶子的博客】
博主信息:四季轮换叶,一路招摇胜!


        专栏

       【安利Java零基础】

       【数据结构-Java语言描述】

希望大家多多支持一起进步呀!~❤️
若有帮助,还请【关注点赞收藏】,不行的话我再努力努力呀!

————————————————
⚡版权声明:本文由【路遥叶子】原创、在CSDN首发、需要转载请联系博主。
想寻找共同成长的小伙伴,请点击【Java全栈开发社区】

【安利Java零基础】java基础语法—20道常见异常库_第1张图片

目录

前言

20道Java基础常见异常库

        如果文章对您有帮助,就拿起小手赶紧给博主点赞评论❤️收藏 一下吧!

         想要了解更多吗?没时间解释了,快来点一点!


前言

在编程中异常报错是不可避免的。特别是在学习某个语言初期,看到异常报错就抓耳挠腮,常常开玩笑说编程1分钟,改bug1小时。

异常指程序运行过程中出现的非正常现象,例如用户输入错误、除数为零、需要处理的文件不存在、数组下标越界等。异常机制本质就是当程序出现错误,程序安全退出的机制。在Java的异常处理机制中,引进了很多用来描述和处理异常的类,称为异常类。异常类定义中包含了该类异常的信息和对异常进行处理的方法。

Java是采用面向对象的方式来处理异常的,处理过程:

  1. 抛出异常:在执行一个方法时,如果发生异常,则这个方法生成代表该异常的一个对象,停止当前执行路径,并把异常对象提交给JRE。
  2. 捕获异常:JRE得到该异常后,寻找相应的代码来处理该异常。JRE在方法的调用栈中查找,从生成异常的方法开始回溯,直到找到相应的异常处理代码为止。

让我们来看看前面所讲到的异常类究竟是个什么东西!

其实所有的异常对象都是派生于Throwable类的一个实例。如果内置的异常类不能够满足需要,还可以创建自己的异常类。所有异常的根类为java.lang.Throwable。看看它的家族长什么样:

【安利Java零基础】java基础语法—20道常见异常库_第2张图片

 ❤❤️❤️❤❤️❤️❤❤️❤❤️❤❤️❤️❤❤️❤


1. 改变main方法名称

⚡⚡描述

若没有main方法,强制执行程序,控制台会报错:

【安利Java零基础】java基础语法—20道常见异常库_第3张图片

 ⚡⚡解决方法

必须有一个方法叫做main

public class Demo01 {
    public static void main(String[] args) {
        //main方法
    }
}

2. 总是执行老代码

⚡⚡描述

每次执行,即使将代码更新,执行效果仍然是之前的老代码

 ⚡⚡解决方法

解决方案:手动删除out目录

【安利Java零基础】java基础语法—20道常见异常库_第4张图片


3. 执行括号报错

⚡⚡描述

【安利Java零基础】java基础语法—20道常见异常库_第5张图片

⚡⚡解决方法

检查括号成对出现

【安利Java零基础】java基础语法—20道常见异常库_第6张图片


4. 书写休眠代码

⚡⚡描述

【安利Java零基础】java基础语法—20道常见异常库_第7张图片

⚡⚡解决方法

在红线处,按下Alt+回车,选择第一个,会自动补全代码

【安利Java零基础】java基础语法—20道常见异常库_第8张图片

【安利Java零基础】java基础语法—20道常见异常库_第9张图片


5. 项目内容消失了

⚡⚡描述

【安利Java零基础】java基础语法—20道常见异常库_第10张图片

 删除了.iml文件导致

⚡⚡解决方法

重新创建项目


6. 变量运算报错

⚡⚡描述

【安利Java零基础】java基础语法—20道常见异常库_第11张图片

⚡⚡解决方法

变量先赋值,后使用


7. 变量超出保存范围

⚡⚡描述

【安利Java零基础】java基础语法—20道常见异常库_第12张图片

⚡⚡解决方法

缩小数字,或更换更大的数据类型,例如:long


8. 使用关键字作为包名

⚡⚡描述

包名中使用了关键字java。运行报异常

【安利Java零基础】java基础语法—20道常见异常库_第13张图片

⚡⚡解决方法

包名不能加关键字,重新更换包


9. 引入错误的String类型

⚡⚡描述

【安利Java零基础】java基础语法—20道常见异常库_第14张图片

⚡⚡解决方法

删除标红的引用语句,重新选择java.lang的String类型

【安利Java零基础】java基础语法—20道常见异常库_第15张图片

 使用注意:引用的String   (java.lang)

【安利Java零基础】java基础语法—20道常见异常库_第16张图片


10. 除0异常

⚡⚡描述

若数字除0,会出现除0异常

【安利Java零基础】java基础语法—20道常见异常库_第17张图片

⚡⚡解决方法

数字不能进行除0,重新书写除数

❤️❤❤️❤️❤❤️❤❤️❤❤️❤️❤❤️❤


11. 字符串转其他类型异常

描述

public class Demo01 {
    public static void main(String[] args) throws InterruptedException {
        String str1 = "10.55";
        String str2 = "10.55a";
        //转换类型+1
        System.out.println(Integer.parseInt(str1)+1);

    }

 例如:"10.55"字符串,转换整数报错。

解决方法

方法一: 把字符串中,不能转换的内容删除

                例如:String str1 = "10";

方法二:使用指定类型进行转换,Double小数类型

                例如:Double.parseDouble(str1);


12. 三元运算符使用错误

描述

public class Demo01 {
    public static void main(String[] args) throws InterruptedException {
         10==10?"相等":"不相等";
    }
}

【安利Java零基础】java基础语法—20道常见异常库_第18张图片

解决方法

public class Demo01 {
    public static void main(String[] args) {
        //三元运算符注意事项
        //三元运算符 结果必须被使用(被展示、被赋值、参与运算)

        //1.被展示
        System.out.println(10==10?"相等":"不相等");
        //10==10?"相等":"不相等";

        //2. 被赋值
        double dd = (10!=9)?10.55:20.55;

        //3. 参与运算
        System.out.println( ((10!=9)?10.55:20.55)>10 );
    }
}

13. Scanner数字和字符串混用问题

描述

数字和字符串在同一个Scanner混用,会导致 nextLine()不能阻塞,被跳过

解决方法

Scanner  数字定义一个变量,字符串定义另一个变量。


14.毫秒值运算超出Int范围

描述

import java.util.Date;

public class Demo01 {
    public static void main(String[] args)  {
        Date d = new Date();
        System.out.println(d.toLocaleString());
        //需求:需要设置365天后的现在
        //365天毫秒值 = 1000*60*60*24*365
        long x = d.getTime()+1000*60*60*24*365;
        d.setTime(x);
        System.out.println(d.toLocaleString());
    }
}

【安利Java零基础】java基础语法—20道常见异常库_第19张图片

1000*60*60*24*365远远超出int范围,使得数据丢失

解决方法

数变为long类型

【安利Java零基础】java基础语法—20道常见异常库_第20张图片

【安利Java零基础】java基础语法—20道常见异常库_第21张图片

import java.util.Date;

public class Demo01 {
    public static void main(String[] args)  {
        Date d = new Date();
        System.out.println(d.toLocaleString());
        //需求:需要设置365天后的现在
        //365天毫秒值 = 1000*60*60*24*365
        long x = d.getTime()+1000L*60*60*24*365;
        d.setTime(x);
        System.out.println(d.toLocaleString());
    }
}

15. 无法加载和找不到主类错误

描述

public class Demo01 {
    public static void main(String[] args)  {
        System.out.println("你好");
    }
}

执行java代码时,控制台报错:

我们发送的run指令,IDEA接收后,在out目录找不到该java文件的class文件

导致运行失败

解决方法

代码是无错的,错误在于idea的自动编译机制卡死导致

方法一:删除out目录,重新编译当前java类。

方法二:手动新建一个java类,把代码复制粘贴进去。

方法三:或者右击,选择重新编译:

【安利Java零基础】java基础语法—20道常见异常库_第22张图片


16. 无限循环后的代码问题

描述

public class Demo01 {
    public static void main(String[] args)  {
       for (;;){
           System.out.println("a");
       }
        System.out.println("你好!");
    }
}

【安利Java零基础】java基础语法—20道常见异常库_第23张图片

无限循环后写代码会报错

解决方法

  1. 无限循环后不写任何代码
  2. 无限循环中 加入条件判断break/return关键字

​​


​​​​​​​17. ​​​​​​​无限循环后的代码问题2

描述

break后跟代码,就会展示报错。

public class Demo01 {
    public static void main(String[] args)  {
       int j = 1 ;
       while (j <= 999 ) {
           System.out.println(j);
           break;
           j++;
       }
        System.out.println("while结束");
    }
}

【安利Java零基础】java基础语法—20道常见异常库_第24张图片

解决方法

  1. 代码写于break上方

  2. 加入分支语句(if、switch


​​​​​​​18. ​​​​​​​​​​​​​​空指针异常

描述

import java.util.Random;

public class Demo01 {
    public static void main(String[] args)  {
        Random r1 = new Random();
        int i = r1.nextInt(10);

        Random r2 = null ;
        int i1 = r2.nextInt(10);
    }
}

【安利Java零基础】java基础语法—20道常见异常库_第25张图片

解决方法

【安利Java零基础】java基础语法—20道常见异常库_第26张图片

import java.util.Random;

public class Demo01 {
    public static void main(String[] args)  {
        Random r1 = new Random();
        int i = r1.nextInt(10);

        Random r2 = null ;
        r2 = new Random();
        int i1 = r2.nextInt(10);
    }
}

​​​​​​​19. ​​​​​​​​​​​​​​索引越界异常

描述


public class Demo01 {
    public static void main(String[] args)  {
        int[] arr = {11,22,33}; //最大索引为:2
        System.out.println(arr[1000]);
        System.out.println(arr[-1000]);
    }
}

【安利Java零基础】java基础语法—20道常见异常库_第27张图片

解决方法

确定索引的范围是 0~数组长度-1  ,不要超范围使用。


​​​​​​​20. ​​​​​​​结构体中,属性无法使用问题

描述

Student类和Demo1类没有在同一个包下

Demo1类中直接使用学生类 属性报错:

【安利Java零基础】java基础语法—20道常见异常库_第28张图片

解决方法

学生类的成语变量(属性)前面加入 public

【安利Java零基础】java基础语法—20道常见异常库_第29张图片


❤️❤❤️❤️❤❤️❤❤️❤❤️❤️❤❤️❤

如果文章对您有帮助,就拿起小手赶紧给博主点赞评论❤️收藏 一下吧!

【安利Java零基础】java基础语法—20道常见异常库_第30张图片

 想要了解更多吗?没时间解释了,快来点一点!

路遥叶子的博客_CSDN博客-数据结构,安利Java零基础,spring领域博主路遥叶子擅长数据结构,安利Java零基础,spring,等方面的知识,路遥叶子关注spring,spring boot,python,架构,java,mysql领域.https://blog.csdn.net/zsy3757486?spm=1000.2115.3001.5343

你可能感兴趣的:(安利Java零基础,java,异常处理)