这是一个暴露我缺乏经验的问题:我有一个方法DoSomething()如果它不能干净地完成它,它会抛出异常。如果失败了,我会多次尝试不太准确的方法DoSomethingApproximately() ,希望它能找到足够好的解决方案;如果这也失败了,我最后打电话给DoSomethingInaccurateButGuaranteedToWork()。这三个都是属于这个对象的方法。
两个问题:首先,这种(诚然丑陋的)模式是否可以接受,还是有更优雅的方式?
其次,考虑到它可能引发异常,跟踪我调用DoSomethingApproximately()多少次的最佳方法是什么?我目前在对象中保留一个变量 iNoOfAttempts,并嵌套 try 块......这太可怕了,我很惭愧。