为了账号安全,请及时绑定邮箱和手机立即绑定

避免无法修改的类使用时避免instanceof的最佳设计模式?

避免无法修改的类使用时避免instanceof的最佳设计模式?

扬帆大鱼 2021-04-27 17:13:49
我正在重写第三方库类提供的方法,并尝试记录发生的异常:@OverridesomeJavaMethod(arg1, arg2, Exception ex){        //Declare some variables with default values    if (ex instanceof SpecificException1)        //Set values for the variables    else if (ex instanceof SpecificException2)        //Set some other values for the variables    else        //Do nothing}这里的问题是,SpecificException1和SpecificException2都是第三方的异常,我无法修改它们。我了解使用instanceof并不是解决此问题的好方法。我应该使用哪种设计模式/ OO原则来处理此问题?(另外,建议我查看访问者和非循环访问者的设计模式,但是我不确定它们是否可以应用于无法修改的类)
查看完整描述

2 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

没有根本解决此问题的方法(至少在Java中没有)。如果使用的是允许多调度的语言,则可以为不同的异常类型重载消息。

我宁愿建议您简单地接受它。如果有的话,我会看到干净代码规则在这里有何帮助,例如,通过确保每个if块都进入不同的方法。

嗯,有一种略有不同的方法:您可能会使用地图。键将是异常类,值将是包含需要分配的不同变量的值的东西


查看完整回答
反对 回复 2021-05-12
?
慕神8447489

TA贡献1780条经验 获得超1个赞

将异常抛出到try-catch块中并使用catch子句来标识异常是什么呢?


查看完整回答
反对 回复 2021-05-12
  • 2 回答
  • 0 关注
  • 172 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信