您的位置:首页 > 科技 > 能源 > 网页游戏链接大全2023_中国企业排名100强_国内专业seo公司_百度广告联盟收益

网页游戏链接大全2023_中国企业排名100强_国内专业seo公司_百度广告联盟收益

2024/12/22 17:32:39 来源:https://blog.csdn.net/Bew1tch/article/details/143459760  浏览:    关键词:网页游戏链接大全2023_中国企业排名100强_国内专业seo公司_百度广告联盟收益
网页游戏链接大全2023_中国企业排名100强_国内专业seo公司_百度广告联盟收益

1.异常

1.1认识异常

什么是异常?

  • 异常代表程序出现的问题。

读取的文件不存在了

读取网络数据,结果断网了

...

异常的作用?

  • 异常是用来定位程序bug的关键信息,可以让我们快速打补丁。(会有一个异常文件,我们可以看异常文件)
  • 可以作为方法内部的一种特殊返回值,以便通知上层调用者,方法的执行问题。

这就是异常作为方法内部一种特殊返回值的实例,我们看运行结果就能知道问题所在,它的作用显而易见。

如果我们的参数正确,也完全不会影响我们程序执行。

1.1.1运行时异常

  • ArrayIndexOutOfBoundsException 越界异常

  • ArithmeticException 算数异常

  • NullPointerException 空指针异常

1.1.2编译时异常

    //定义一个方法,认识编译时异常public static void show02(){//编译异常:编译阶段报错,源代码中,有语法错误,无法通过编译。System.out.println("程序开始");String str="2021-11-02 19:25:31";//把字符串时间解析成Java中的一个日期对象。SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date date = sdf.parse(str);System.out.println(date);System.out.println("程序结束");}

1.2自定义异常

  • Java无法为这个世界上全部的问题都提供异常类来表示,如果企业自己的某种问题(比如发现你这个用户不是VIP),想通过异常来表示,以便用异常来管理该问题,那就需要自己来定义异常类了。
  • 那自定义异常肯定需要认爸爸,也就是继承RuntimeException运行时异常,或继承编译时异常Exception。

1.2.1自定义运行时异常

  • 定义一个异常类继承RuntimeException。
  • 重写构造器。
  • 通过throw new异常类(xxx)来创建异常对象并抛出。
  • 特点:编译阶段不报错,运行时才可能出现!提醒不属于激进型。

我们现在测试一下,年龄参数有问题运行程序会出现什么结果。

1.2.2自定义编译时异常

  • 定义一个异常类继承Exception。
  • 重写构造器。
  • 通过throw new异常类(xxx)创建异常对象并抛出。
  • 特点:编译阶段就报错,提醒比较激进。

我们现在测试一下,年龄参数有问题运行程序会出现什么结果。

现在sun公司包括实际的java开发使用编译类异常的可能性都在减少,因为编译时异常的侵略性太过严重,因为不管谁碰到了,都需要强制的抛出异常或者处理,现在的项目出现异常的概率也会小很多,所以现在java在全面摒弃编译时异常,所以还是推荐大家使用运行时异常。

1.3异常的处理方案

1.3.1异常的基本处理

抛出异常(throws)

  • 在方法上使用throws关键字,可以将方法内部出现的异常抛出去给调用者处理。

捕获异常(try...catch)

  • 直接捕获程序出现的异常

这是第一种情况,我们利用try...catch,但是代码正确,所以不会触发打印这个异常信息。

现在我们试一下如果故意把编译时异常提示的代码写错会发生什么。

那如果一个方法里,可能会出现两种编译时异常我们如何处理呢?

我们可以同时抛两个,或者我们直接把异常类型写成Exception,因为Exception是所有异常的爹。

1.3.2异常的处理方案

方案1(现在项目开发最推荐使用的)

  • 底层异常层层往上抛出,最外层捕获异常,记录下异常信息,并响应适合用户观看的信息进行提示。

方案2

  • 最外层捕获异常后,尝试重新修复。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com