「产品经理」遇到异常怎么办?死了都要try( 二 )


那么问题来了 , Java里面定义的异常是很有限的 , 一共就那么些异常 , 所以有时候就需要我们自定义异常来说明情况 。
在Java里面 , 一切万物就可成类 , 自定义异常 , 就是自己创建一个异常类 。

  • 编译期异常:自定义类并继承于Exception
  • 运行期异常:自定义类并继承于RuntimeException 。
比如说现在有一个类Person , 它有姓名和年龄两个属性:
现在有个用户填年龄时就是要填-18岁 , 怎么办?
很显然 , 年龄是不可能-18岁的 , 如果类的成员变量没有封装 , 用户是直接可以随便修改的 , 显然这样是不行的 , 所以封装的作用就出来了 。
什么叫封装?
通俗点说就是:用户没法直接修改属性了 , 而是通过方法修改 , 这样的话 , 我就可以在方法里面加一个判断 , 你若是输入的数据不合适 , 你就没法修改属性成功 。
这就是封装的意义 。
好 , 现在我们在方法里 , 设定一个年龄规则 , 用户输入的数字若是不在这个范围里面 , 就会抛出异常 , 并且提醒用户 。
好 , 现在问题又来了 , 产品经理看了之后 , 觉得你写的这个RuntimeException它看不懂 , 他要年龄异常(ArgException) , 这样更加地直观 。
可是Api里面又没有ArgException这个异常 。
要知道产品经理是会对程序员提各种各样的需求的 , 原则上程序员是需要满足产品经理提的要求的 , 但是有些产品经理又不怎么懂技术 , 就会乱提要求 。
我记得有一年平安的产品经理就和程序员发生了矛盾 , 双方大打出手 , 还上了热搜 , 闹得沸沸扬扬的 。
当时产品经理提的要求好像是:
用户使用平安APP时 , APP界面颜色要和用户的手机壳颜色一样 。
当时程序员就觉得 , 这怎么弄?没法做 , 产品经理又要做 , 于是两个人就打起来了 。
当然 , 这个需求能否通过技术上的手段解决我也不清楚 。
回到我们自定义异常的问题 , 产品经理说要ArgException , 怎么办?
自定义一个异常就好了 。
异常里面的底层到底是如何处理的 , 我们清楚么?
我们不清楚 , 那不清楚怎么写?
这个时候 , 面向对象第二个特性:继承的作用就出来了 。
我不需要知道怎么写 , 我只需要继承某个异常就好了 , 父类是怎么处理的 , 我直接使用它的方法就好了 。
这就是自定义异常 , 特别简单 。
总结:
感谢你的观看
如果可以的话 , 麻烦帮我点个赞 , 谢谢你


推荐阅读