【Java:为什么要有自定义异常?】

握草 2018-03-27 06:47:47
如题。
既然Java已经有了健全的异常处机制(有很多类),为什么还要继承现有的异常,自定义自己的异常类呢??
再说了,就算自定义了一个新的异常,又能怎么样。
...全文
1677 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
mmmdcsmtos 2018-04-09
  • 打赏
  • 举报
回复
你先理解了异常这个东西吧
kampoo 2018-04-02
  • 打赏
  • 举报
回复 3
异常分类方便捕捉不同的异常类型,并进行对应的操作。在稍微复杂的业务系统中,仅仅使用Java自身的异常类是不够的,比如常见的NPE/IAE等。 1. 有时候需要对参数进行各种检查,NPE不足以清晰的说明异常的具体内容。比如有多个参数,对每个参数进行自定义的校验规则,可以通过IAE(message: String)来让调试过程更加友好。 2. 自定义参数,比如数据解析异常,可能中间多处可能抛出,这里可以定义一个MyParseException,针对此类异常通常使用相同的善后操作。 3. 自定义异常可以定义层次结构,即某个业务系统中的所有异常统一顶一个根类,然后再定义一些子类异常,分类进行针对性的操作。比如定义一个MyRootException,然后对网络通信解析的异常MyParseException,对数据访问的异常MyDataException等,这些异常都代表了不同的类型,操作句柄也都是不一样的。
qq_29990699 2018-04-02
  • 打赏
  • 举报
回复
业务需要,自己抛出的自定义异常更栓接
java-小学生 2018-03-30
  • 打赏
  • 举报
回复
可以根据不同的异常来给出不同的处理方案
握草 2018-03-30
  • 打赏
  • 举报
回复
请问,可以在自定义异常类中定义自己的方法吗,如果可以的话一般会定义怎样的方法,可以距离说明吗。
星涯无痕 2018-03-28
  • 打赏
  • 举报
回复
异常分类,业务中不同场景抛出不同异常,便于统一捕获并根据类型做进一步处理
  • 打赏
  • 举报
回复
初学者可以不考虑这个问题
AKUK 2018-03-28
  • 打赏
  • 举报
回复
杀鸡用牛刀是不合理的
  • 打赏
  • 举报
回复
根据自己的需求,出现异常的时候,做特殊的处理。。。不然就得在里面做区分。。。
wcwtitxu 2018-03-27
  • 打赏
  • 举报
回复 1
如果你不把 exception 分门别类, 把不同业务场景产生的异常, 定义成不同的类型

		try {
			// ...
		} catch(Exception e) {
			// 这里该如何对不同的异常做不同的处理错误,
			// 分析 e.getMessage() 的消息格式吗来决定处理方式吗?
			// ...
		}
wcwtitxu 2018-03-27
  • 打赏
  • 举报
回复
按你的意思,一个 Exception 就能走遍天下 那是不是 NullPointerException、ArrayIndexOutOfBoundsException、IOException、... 之类的全都可以不要, 它们也都只是继承 Exception 换个错误消息模板而已 用的时候, 只要 new Exception(“不同消息”) 就行了。
握草 2018-03-27
  • 打赏
  • 举报
回复 1
可是这些Exceptin不都是现成的吗,而且就算你继承了,不也只是改写以下构造方法,改变一下程序Crash时输出的结果吗?
「已注销」 2018-03-27
  • 打赏
  • 举报
回复 2
Windows 系统还定义了几千个错误代码呢,意义何在?调用 API 难道不是只需要知道成功或失败就行了吗?好,那你现在打开一个文件,失败。失败了,那你怎么解决"打开失败"这个问题?就像错误代码,作用和异常一样。有些时候,我们的确不需要太关心失败信息,只需捕获一个 Exception 就行了。但有时我们的确得知道文件打不开究竟是什么原因?比如文件不存在了,或者读取权限不足了等等。有些甚至需要更详细的信息,以便各种错误代码下:1. 如何给打印出对应的友好日志信息。2. 如何根据不同错误代码解决问题。

62,636

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧