我不想讨论何时抛出异常而不抛出异常.我想解决一个简单的问题.99%的时间不抛出异常的论点围绕着它们缓慢而另一方声称(基准测试)速度不是问题.我读过很多关于一方或另一方的博客,文章和帖子.那是哪个呢?
所以,我知道try/catch会增加一些开销,因此不是控制流程流的好方法,但是这种开销来自何处以及它的实际影响是什么?
首先,免责声明:我有其他语言的经验,但我仍在学习C#的微妙之处
关于问题...我正在看一些代码,它以一种让我关注的方式使用try/catch块.当调用解析例程而不是返回错误代码时,程序员使用以下逻辑
catch (TclException e) {
throw new TclRuntimeError("unexpected TclException: " + e.Message,e);
}
Run Code Online (Sandbox Code Playgroud)
这是由调用者捕获的,它抛出相同的错误......
由调用者捕获,它抛出相同的错误......
.....被调用者捕获,抛出同样的错误...
备份大约6个级别.
我认为所有这些catch/throw块都会导致性能问题,或者这是C#下的合理实现吗?