最全JAVA入门之异常 笔记(34),java程序员面试书籍

难道这样就够了吗?不,远远不够!

提前多熟悉阿里往年的面试题肯定是对面试有很大的帮助的,但是作为技术性职业,手里有实打实的技术才是你面对面试官最有用的利器,这是从内在散发出来的自信。

备战阿里时我花的最多的时间就是在学习技术上,占了我所有学习计划中的百分之70,这是一些我学习期间觉得还是很不错的一些学习笔记

我为什么要写这篇文章呢,其实我觉得学习是不能停下脚步的,在网络上和大家一起分享,一起讨论,不单单可以遇到更多一样的人,还可以扩大自己的眼界,学习到更多的技术,我还会在csdn、博客、掘金等网站上分享技术,这也是一种学习的方法。

今天就分享到这里了,谢谢大家的关注,以后会分享更多的干货给大家!

阿里一面就落马,恶补完这份“阿里面试宝典”后,上岸蚂蚁金服

阿里一面就落马,恶补完这份“阿里面试宝典”后,上岸蚂蚁金服

image.png

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

//运行时异常

public static void method() throws ArrayIndexOutOfBoundsException{

        int[] arr = {1, 2, 3};

        System.out.println(arr[3]);

}

}




![在这里插入图片描述](https://img-blog.csdnimg.cn/343db93be467413195bbb149484ca1f5.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5LiN5Lya5YaZ5Luj56CB55qE56iL5bqP,size_20,color_FFFFFF,t_70,g_se,x_16)



> 通过这个这个的运行结果可以看出来,并没有执行输出”结束“,因此throws处理异常并不是真正处理异常而是只是把这个异常抛出了,如果想要继续往下执行,那么需要对method继续使用try…catch,所以这仅仅时延迟了异常



[]( )3.总结

-----------------------------------------------------------------------



![在这里插入图片描述](https://img-blog.csdnimg.cn/05fda39b96854d37a18d397175b15e9c.png)



[]( )四、Throwable的成员方法

===================================================================================



![在这里插入图片描述](https://img-blog.csdnimg.cn/b11b78fc2a064db98fefbce51d228f8b.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5LiN5Lya5YaZ5Luj56CB55qE56iL5bqP,size_20,color_FFFFFF,t_70,g_se,x_16)



[]( )1、getMessage——用于输出异常的原因

------------------------------------------------------------------------------------------



package TEXT;

public class Demo {

public static void main(String[] args) {

    System.out.println("开始");

    int[] arr = {1, 2, 3};

    try {

        System.out.println(arr[3]);

    }catch (Exception e){

// System.out.println(“数组索引出界”);

// e.printStackTrace();

        System.out.println(e.getMessage());//异常的原因

    }

    System.out.println("结束");

}

}




![在这里插入图片描述](https://img-blog.csdnimg.cn/e9cd280fecd74da9bb271b22060eb39f.png)



[]( )2、toString——用于输出异常的类名以及异常原因

----------------------------------------------------------------------------------------------



package TEXT;

public class Demo {

public static void main(String[] args) {

    System.out.println("开始");

    int[] arr = {1, 2, 3};

    try {

        System.out.println(arr[3]);

    }catch (Exception e){

// System.out.println(“数组索引出界”);

// e.printStackTrace();

// System.out.println(e.getMessage());//异常的原因

        System.out.println(e.toString());//异常类名以及异常原因

    }

    System.out.println("结束");

}

}




![在这里插入图片描述](https://img-blog.csdnimg.cn/ef47ce64d75347efa50c4c18c28a5dd7.png)



[]( )3、printStackTrace——把异常信息输出

---------------------------------------------------------------------------------------------



package TEXT;

public class Demo {

public static void main(String[] args) {

    System.out.println("开始");

    int[] arr = {1, 2, 3};

    try {

        System.out.println(arr[3]);

    }catch (Exception e){

// System.out.println(“数组索引出界”);

        e.printStackTrace();//把异常信息输出

// System.out.println(e.getMessage());//异常的原因

// System.out.println(e.toString());//异常类名以及异常原因

    }

    System.out.println("结束");

}

}




![在这里插入图片描述](https://img-blog.csdnimg.cn/02fa534405674fc7ba107214b72b0906.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5LiN5Lya5YaZ5Luj56CB55qE56iL5bqP,size_20,color_FFFFFF,t_70,g_se,x_16)



[]( )五、编译异常与运行异常

==============================================================================



> JAVA中的异常被分为两大类:编译异常和运行异常,也被称为受检异常和非受检异常  

> **所有的RuntimeException类及其子类被称为运行时异常,其他的异常都是编译时异常**



> *   编译时异常:必须显示处理,否则程序就会发生错误,无法通过编译

> *   运行时异常:无需显示处理,也可以和编译时异常一样处理



package TEXT;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

public class Demo_1 {

public static void main(String[] args) {

    method();

    method2();

}

//运行时异常

public static void method(){

    try {

        int[] arr = {1, 2, 3};

        System.out.println(arr[3]);

    }catch (Exception e){

        e.printStackTrace();

    }

}



//编译时异常

public static void method2(){

    try {

        String s = "2020-09-01";

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

        Date d = sdf.parse(s);//这里报错只是为了说可能有异常

        System.out.println(d);

    }catch (ParseException e){

        e.printStackTrace();

    }

}

}




![在这里插入图片描述](https://img-blog.csdnimg.cn/6915f7f60c614393ad66d37886657f35.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5LiN5Lya5YaZ5Luj56CB55qE56iL5bqP,size_20,color_FFFFFF,t_70,g_se,x_16)



[]( )六、自定义异常

==========================================================================



> 在我们编写程序的时候,会遇到各种各样的异常,但是,并不是所有的异常都是JAVA实现封装成对象的,因此自定义异常的作用就出来了,在自定义异常类中通过编写新的方法来处理相关异常



> 那么我们怎么创建属于自己的异常呢?  

> 我们只需要在建立异常的时候,继承Exception或者RuntimeException即可



![在这里插入图片描述](https://img-blog.csdnimg.cn/3ce49cc2289e4102995b9adf07e11fc1.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5LiN5Lya5YaZ5Luj56CB55qE56iL5bqP,size_20,color_FFFFFF,t_70,g_se,x_16)



package TEXT_1;

/*

自定义分数异常

*/

public class ScoreException extends Exception{

public ScoreException() {

}



public ScoreException(String message) {

    super(message);

}

}


package TEXT_1;

/*

老师对象类

*/

public class Teacher {

public void checkScore(int score) throws ScoreException{

    if (score < 0 || score > 100){

// throw new ScoreException();//抛出自定义异常对象,但是一般不给空

        throw new ScoreException("你给的分数有误,应该给0~100!!!");

    }else {

        System.out.println("分数正常");

    }

}

}


package TEXT_1;

/*

测试类

*/

import java.util.Scanner;

public class TeacherTest {

public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);

    System.out.println("请输入分数:");

    int score = sc.nextInt();



    Teacher t = new Teacher();

    //checkScore方法抛出一个异常,而这个异常继承的时Exception,所有这个时一个编译时异常

    try {

        t.checkScore(score);

    } catch (ScoreException e) {

        e.printStackTrace();

    }

最后

小编利用空余时间整理了一份《MySQL性能调优手册》,初衷也很简单,就是希望能够帮助到大家,减轻大家的负担和节省时间。

关于这个,给大家看一份学习大纲(PDF)文件,每一个分支里面会有详细的介绍。

image

这里都是以图片形式展示介绍,如要下载原文件以及更多的性能调优笔记(MySQL+Tomcat+JVM)!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

printStackTrace();

    }

最后

小编利用空余时间整理了一份《MySQL性能调优手册》,初衷也很简单,就是希望能够帮助到大家,减轻大家的负担和节省时间。

关于这个,给大家看一份学习大纲(PDF)文件,每一个分支里面会有详细的介绍。

[外链图片转存中…(img-GOgRjIOp-1715566274928)]

这里都是以图片形式展示介绍,如要下载原文件以及更多的性能调优笔记(MySQL+Tomcat+JVM)!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 15
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值