好奇心好.
我担心,除了在Java中使用try catch之外别无他法,但如果Java是OTF(即时)编译器,并且异常机制实际上使用了一个(if-responds_to?)方法,该方法有望在顶层声明类继承的层级金字塔,例如Java中的Object,可以在DynamicClass上覆盖该方法.
但是Java不使用上面的机制来控制if responds_to?并且发送到对象(类)的消息在编译器中的其他位置进行测试,但不能作为可以覆盖的方法进行测试.
我知道一种名为(Magik)的语言,它具有上述机制,非常好,它是一个OTF编译器.
Magik中的Object类有一个名为does_not_responds_to()的方法,每当一个消息发送到一个对象时,它就会针对类状态和行为进行测试,最后提出或者更好地说如果方法名称(消息)运行do_not_responds_to()方法) 是无效的.
实现do_not_responds_to是一个非常巧妙的解决方案吗?类(DynamicClass)中的方法在引发异常之前处理它.然而,经过与Magik的10年经验,从未需要这样做.
对不起,我的英语不好,我希望我能解释一下这个问题.