广告
返回顶部
首页 > 资讯 > 精选 >JAVA中异常处理使用不当该怎么办
  • 403
分享到

JAVA中异常处理使用不当该怎么办

2023-06-02 18:06:39 403人浏览 八月长安
摘要

JAVA中异常处理使用不当该怎么办,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。★空的 catch 语句块  犯这种错误的人比较少,一般发生在刚学会 Java

JAVA中异常处理使用不当该怎么办,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

★空的 catch 语句块

  犯这种错误的人比较少,一般发生在刚学会 Java 或者刚参加工作不久的人身上。
  所谓“空 catch 语句块”就是在 catch 语句块中没有对异常作任何处理(比如记错误日志),导致异常信息被丢弃/忽略。一旦程序不能正确运行,由于查不到任何 log 信息,只好从头看代码,靠肉眼找 bug。

★没有使用 finally

  很多人在 catch 语句之后不使用 finally 语句。由于在 try 语句中可能会涉及资源的申请和释放。如果在资源申请之后、资源释放之前抛出异常,就会发生资源泄露。

★笼统的 catch 语句块

  有些人为了省事,只在自己模块的最外层代码包一个 try 语句块,然后 catch(Exception)。不管捕获到什么异常,都作统一 log 了事。这种做法比“空 catch 语句块”稍好,但由于不能对具体的异常进行具体处理,对一些可恢复的异常(下面会提到),丧失了恢复的机会。而且也可能导致上述提到的资源泄露的问题。

★使用函数返回值进行错误处理

  有些人放着 Java 的异常机制不用,而用函数返回值来表示成功/失败(比如:返回 true 表示成功、false 表示失败),简直是“捧着金碗要饭”。个人感觉,从 C 转到 Java 的人比较容易有此毛病。这种做法会导致如下几个问题:
1. 返回值一般用整数值或布尔值表示,传递的信息过于简陋;
2. 一旦调用者忽略了错误返回码,就会导致和“空 catch 语句块”类似的问题;
2. 对同一个函数的多处调用,都需要对返回值进行重复判断,导致代码冗余。

★不清楚“Checked Exception”和“Runtime Exception”的区别

  这个现象比较普遍,俺发现很多2年以上 Java 工作经验的人尚未完全搞明白两者的区别。看来这个问题得详细说一下。
当初Java的设计者有意区分这两种异常,是别有深意的。其中“Checked Exception”用于表示可恢复的异常(也就是你必须检查的异常);而“Runtime Exception”表示不可恢复的异常(也就是运行时异常,主要是程序 bug 和致命错误,你【不需要】检查)。不过这种做法引来了很多争议(包括很多 Java 大牛),鉴于本帖子主要针对新手,以后再专门来聊这个争议的话题。
  为了便于理解,下面我举一个例子来说明。假设你要写一个 Download 函数,根据传入的 URL(String 参数)返回对应网页的内容文本。这时候有两种情况你需要处理:
1. 如果传入的 URL 参数是 null,这表明该函数的调用者出 bug 了,而程序本身的 bug 是很难在运行时自我恢复的。这时候 Download 函数必须抛出 Runtime Exception。并且 Download 函数的调用者【不应该】尝试去处理这个异常,必须让它【尽早】暴露出来(比如让 JVM 自己终止运行)。
2. 如果传入的 URL 参数非 null,但是它包含的字符串不是一个合法的URL格式(可能由于用户输入错误导致)。这时候 Download 函数必须抛出 Checked Exception。并且 Download 函数的调用者必须捕获该异常并进行相应的处理(比如提示用户重新输入 URL)。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网精选频道,感谢您对编程网的支持。

--结束END--

本文标题: JAVA中异常处理使用不当该怎么办

本文链接: https://www.lsjlt.com/news/230860.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JAVA中异常处理使用不当该怎么办
    JAVA中异常处理使用不当该怎么办,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。★空的 catch 语句块  犯这种错误的人比较少,一般发生在刚学会 Java ...
    99+
    2023-06-02
  • Java中Service层异常该怎么处理
    这篇文章主要介绍“Java中Service层异常该怎么处理”,在日常操作中,相信很多人在Java中Service层异常该怎么处理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java中Service层异常该怎...
    99+
    2023-06-27
  • 怎么在java中使用finally处理异常
    怎么在java中使用finally处理异常?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发...
    99+
    2023-06-14
  • 怎么处理Java中的异常
    这篇文章主要讲解了“怎么处理Java中的异常”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么处理Java中的异常”吧!异常与error介绍下面还是先让我们来看一下基本概念吧! 异...
    99+
    2023-06-16
  • 为什么不使用try-catch-finally处理Java异常
    本篇内容主要讲解“为什么不使用try-catch-finally处理Java异常”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“为什么不使用try-catch-finally处理Java异常”吧!...
    99+
    2023-06-15
  • java中异常处理怎么分类
    小编给大家分享一下java中异常处理怎么分类,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Java有哪些集合类Java中的集合主要分为四类:1、List列表:有序...
    99+
    2023-06-14
  • Java中怎么处理异常类型
    这期内容当中小编将会给大家带来有关Java中怎么处理异常类型,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、异常的描述程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。...
    99+
    2023-06-20
  • Java异常处理try catch怎么用
    这篇文章将为大家详细讲解有关Java异常处理try catch怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。我们编译运行程序出错的时候,编译器就会抛出异常。抛出异常要比终止程序灵活许多,这...
    99+
    2023-06-21
  • SQLServer中Tempdb空间异常增长及占用非常大该怎么办
    SQLServer中Tempdb空间异常增长及占用非常大该怎么办,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、问题现象  &nb...
    99+
    2022-10-19
  • 如何在java中使用catch处理异常
    本文章向大家介绍如何在java中使用catch处理异常,主要包括如何在java中使用catch处理异常的使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。Java的特点有哪些Java的特点有哪些1...
    99+
    2023-06-06
  • 怎么在Java项目中对异常进行处理
    本文章向大家介绍怎么在Java项目中对异常进行处理的基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3. 客户端开发;4. 网页...
    99+
    2023-06-06
  • 在Java项目中运行异常处理时出现异常怎么解决
    这篇文章将为大家详细讲解有关在Java项目中运行异常处理时出现异常怎么解决,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。  Java异常处理运行时异常(RuntimeExcepti...
    99+
    2023-05-31
    java 异常处理 ava
  • 在Java子线程中怎么对异常进行处理
    这篇文章给大家介绍在Java子线程中怎么对异常进行处理,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。常见错误也许有人会觉得,很简单嘛,直接在父线程启动子线程的地方try ... catch一把就可以了,其实这是不对的。...
    99+
    2023-05-31
    java 子线程 ava
  • 怎么在Python中利用Selenium处理异常
    这篇文章将为大家详细讲解有关怎么在Python中利用Selenium处理异常,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Python的优点有哪些1、简单易用,与C/C++、Java、C# ...
    99+
    2023-06-14
  • 怎么在python中使用except对异常进行处理
    本篇文章为大家展示了怎么在python中使用except对异常进行处理,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python有哪些常用库python常用的库:1.requesuts;2.scra...
    99+
    2023-06-14
  • 怎么使用whoops接管tp6的异常处理
    小编给大家分享一下怎么使用whoops接管tp6的异常处理,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!春节期间熟悉了TP6, 也写了一个TP6的博客程序,但系统...
    99+
    2023-06-07
  • 怎么在java中使用BigDecimal解决异常
    本篇文章为大家展示了怎么在java中使用BigDecimal解决异常,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java的优点是什么1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程...
    99+
    2023-06-14
  • select2在bootstrap modal中不能正常使用怎么办
    小编给大家分享一下select2在bootstrap modal中不能正常使用怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧...
    99+
    2022-10-19
  • Java中使用异常处理时需要注意哪些问题
    这期内容当中小编将会给大家带来有关Java中使用异常处理时需要注意哪些问题,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。第1条: 只针对不正常的情况才使用异常建议:异常只应该被用于不正常的条件,它们永远不...
    99+
    2023-05-31
    java 异常处理 ava
  • thinkphp5.1中怎么使用自定义异常处理类进行接管
    小编给大家分享一下thinkphp5.1中怎么使用自定义异常处理类进行接管,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!配置文件修改config/app.php自定义异常接管类出处'exception_handle...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作