trycatch如何伤害内存/ CPU?

nic*_*ick 4 c# exception-handling

所以我对它的c#侧感兴趣 - 但我正在标记c ++,因为这里存在概念而我并没有超过'finally'关键字.所以无论如何 - 在线是否存在关于try-catch如何减速或将使用更多内存而不是简单的'if-else'或其他代码的基准测试?例如,现在我正在编写代码并使用Streamwriter,当您将鼠标悬停在它上面时会显示7个可能的异常...所以如果我写下这样的话会有人声称它会更快:

//////////////
if(path is not too long)
{ if(file exists)
{ if(nothing else uses the file)
{ if(user is authorized)
}}}
////////////
Run Code Online (Sandbox Code Playgroud)

你有7个条件,你可以使用try-catch - 更不用说这些条件不能简化为单个if语句.

10倍!

Ben*_*igt 6

try/ catch如果发生异常,则会有轻微的性能成本,但与文件访问相比,成本并不值得担心.

更重要的是try/ catch是正确的,嵌套的ifs不是,因为文件系统是可以异步修改的共享资源.处理实际打开文件的错误或异常结果是避免竞争条件的唯一方法.

看到

这些示例都使用文件,但共享资源的一般原则.