1. 如何选择异常

从个人开发经验来看,如果在一个应用中,需要开发一个方法(如某个功能的service方法),这个方法如果中间可能出现异常,那么你需要考虑这个异常出现之后是否调用者可以处理,并且你是否希望调用者进行处理。

如果调用者可以处理,并且你也希望调用者进行处理,那么就要抛出受检异常,提醒调用者在使用你的方法时,考虑到如果抛出异常时如果进行处理。

相似的,如果在写某个方法时,你认为这是个偶然异常,理论上说,你觉得运行时可能会碰到什么问题,而这些问题也许不是必然发生的,也不需要调用者显示的通过异常来判断业务流程操作的,那么这时就可以使用一个RuntimeException这样的非受检异常。

2. 应该选用哪种异常

RuntimeException异常和受检异常之间的区别就是:是否强制要求调用者必须处理此异常,如果强制要求调用者必须进行处理,那么就使用受检异常,否则就选择非受检异常(RuntimeException)。一般来讲,如果没有特殊的要求,我们建议使用RuntimeException异常。

3. 什么时候才需要抛异常

首先我们需要了解一个问题,什么时候才需要抛异常?异常的设计是方便给开发者使用的,但不是乱用的。

其实这个问题很简单,如果你觉得某些”问题”解决不了了,那么你就可以抛出异常了。比如,你在写一个service,其中在写到某段代码处,你发现可能会产生问题,那么就请抛出异常吧,相信我,你此时抛出异常将是一个最佳时机。

听说给好内容点赞,知乎就会继续给你推荐相关的优质回答,再也不怕没学习素材了~~

exception类型 java_程序员小白入门,Java如何选择异常类型?相关推荐

  1. 菜鸟教程重构版,程序员小白入门编程必备神器

    目前网络上已经有不少相关平台了,内容也基本都一样,但是随着各个平台的升级,功能开始不存粹了,有的是植入了第三方的广告,有的是过分的炫酷,忽略了内容本身属性. 基于这样一种需求,也为了方便自己可以拿来即 ...

  2. 编程入门不知道怎么学?程序员小白来给你支招

    最近有很多朋友私信小编,说想学编程,但是自己基础不好,很多东西都不会,看视频,遇到难点,也不知道怎么解决,甚至有时候竟为了找错误,花了一上午或一下午的时间,作为过来人的小编,确实很明白这些朋友的心情, ...

  3. 网络游戏程序员新手入门 [转]

    网络游戏程序员新手入门 [转] 原文地址: http://job.17173.com/content/2008-12-15/20081215172107441,1.shtml 游戏开发流程和部分分工 ...

  4. 转载:一位资深程序员大牛给予Java初学者的学习路线建议

    一位资深程序员大牛给予Java初学者的学习路线建议 java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来 ...

  5. 什么C++程序员,什么Java程序员

    还是那句话,程序员就是程序员,写得出程序就是程序员.程序员不要在自己脑门上加太多修饰,什么C++程序员,什么Java程序员,什么Windows程序员,什么Linux程序员,这些加了修饰的程序员,其实不 ...

  6. 谁说大龄程序员不能学 Java?

    在技术变迁的路途中,有人说要活到老学到老,才能不被淘汰,但也有的人表示,科技圈中,程序员们吃的都是青春饭. 年龄,是否真的是程序员们一道过不去的坎?就技术本身而言,究竟是技术挑人还是人挑技术? 作者 ...

  7. (转)一位资深程序员大牛给予Java初学者的学习路线建议

    一位资深程序员大牛给予Java初学者的学习路线建议 java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来 ...

  8. 外国程序员整理的Java资料大全

    2019独角兽企业重金招聘Python工程师标准>>> 外国程序员整理的Java资料大全 博客分类: java 构建 这里搜集了用来构建应用程序的工具. Apache Maven:M ...

  9. java程序员的浪漫代码_专属于程序员的浪漫-Java输出动态闪图iloveyou

    代码测试可用,运行结果非常辣眼睛,有种二十一世纪初流行于广大中小学生之间的失落非主流的感觉! 还是比较有参考价值的,获取当前日期时间,日期类格式化,图形界面的开发等. java awt实现小程序动态闪 ...

  10. i love java怎么写编程_专属于程序员的浪漫-Java输出动态闪图iloveyou

    代码测试可用使用的,运行结果非常辣眼睛,有种二十一世纪初流行于广大中小学生之间的失落非主流的感觉! 还是比较有参考网上卖的,获取当前日期时间,日期类格式化,图形界面的开发等. java awt实现小程 ...

最新文章

  1. Python图像处理介绍--彩色图像的直方图处理
  2. BetaBot 木马分析
  3. 可变参数__VA_ARGS__使用和va_list使用小结
  4. java导出mysql数据库失败_利用Java进行MySql数据库的导入和导出
  5. Python 创建随机mac地址(单播、组播)
  6. 拼夕夕订单超时未支付自动关闭实现方案!
  7. java异常应用_Java异常处理机制 —— 深入理解与开发应用
  8. Centos如何通过yum安装php7
  9. 2008社工新书《黑客社会工程学攻击》
  10. jdk15不安装jre_弄懂 JRE、JDK、JVM 之间的区别与联系,你知道多少?
  11. Hybrid和Tagged Untagged理解
  12. 联想m7216更换墨粉流程图_联想M7216打印机更换墨后继续显示需更换
  13. 东芝打印机共享怎么设置_东芝2051C打印机怎么连接并扫描文件到电脑?
  14. 多维正态随机变量的条件概率密度函数推导
  15. FPGA实现贪吃蛇小游戏
  16. 【更新】关于VMware虚拟机无法正常获取IP地址问题的解决方法及思路
  17. IDEA运行java出现“不支持发行版本XX”
  18. Centos 6或7系统 从Kernel panic – not syncing: Attempted to kill init 故障引发的一系列操作
  19. 计算机网络第4章(网际层)
  20. 计算机无法预览文件,SolidWorks文件不能预览的解决方法 | 我爱分享网

热门文章

  1. 远程调试阿里云上的NodeJS Docker应用
  2. 驱动lx4f120h,头文件配置,没有完全吃透,望指点
  3. 尽量用iterator代替const_iterator
  4. 如何优雅地进行错误处理(clean code阅读笔记之六)
  5. JUC锁框架——重入锁ReentrantLock
  6. linux任务计划、chkconfig工具、systemd、unit和target介绍
  7. wordpress如何防止发布文章时候自动清除P、br换行标签
  8. eclipse不能自动编译生成class文件的解决办法
  9. 使用w3m访问页面执行函数
  10. MQTT的学习研究(十)【转】mosquitto——一个开源的mqtt代理