当没有任何异常被抛出时,使用几个try-catch块是"慢"吗?我的问题与此问题相同,但对于Javascript.
假设我有20个函数,其中包含try-catch块.另一个函数调用这20个函数中的每一个.他们都不会抛出异常.由于这个try-catch块,我的代码执行速度会慢还是执行得更差?
javascript performance exception-handling exception try-catch
在编写#1优先级永不崩溃的C#应用程序时,我应该多久使用一次try-catch块?
我可以在try-catch块中封装方法中的所有语句吗?
public void SomeMethod()
{
try
{
// entire contents of the function
// library calls
// function calls
// variable initialization .. etc
}
catch (Exception e)
{
// recover
}
}
Run Code Online (Sandbox Code Playgroud)
将一切包装在try-catch块中有什么缺点?
考虑这种情况:我有3层应用程序,当用户点击按钮时,按钮事件处理程序调用biz层中的方法,该方法对我的按钮事件处理程序提供的数据执行任何操作,然后将该数据传递给发送的数据Access层他们到后端数据库.问题是在哪里放试试?在数据层,在商业层,在表示层或可能把它放在所有这些?在这种情况下,表示异常处理的最佳策略是什么?
可能重复:
何时使用try/catch块?
主要方法代码完全在try/catch中:这是不好的做法?
何时使用Try Catch块
任何地方都可能出现异常,所以这让我想到:我应该总是将我的代码包装在try..catch块中吗?
这是针对C#的.
(我可能会遗漏一些基本的东西,因为我还是个新手)
编辑:看来这确实不是一个非常聪明的问题.我们在学校唯一学到的就是使用try ... catch来防止崩溃.我们对异常所做的是显示一个MessageBox来告诉用户"写这个文件时出错了".
您对代码的看法如下:
public void doSomething()
{
try
{
// actual code goes here
}
catch (Exception ex)
{
throw;
}
}
Run Code Online (Sandbox Code Playgroud)
我看到的问题是没有处理实际错误,只是将异常抛在另一个地方.我觉得调试起来比较困难,因为我没有得到实际问题所在的行号.
所以我的问题是为什么这会好?
----编辑----
从答案来看,大多数人都认为这样做毫无意义,没有捕获自定义或特定异常.这是我想要评论的内容,当没有抓住特定的例外时.我可以看到实际使用捕获的异常执行操作的重点,而不是此代码的方式.
我现在和过去已经深入阅读和讨论了以下问题和文章:
我将使本文成为组织中异常处理的编码标准!非常好但没有回答我:http: //www.codeproject.com/Articles/9538/Exception-Handling-Best-Practices-in-NET
Java或C#中的异常管理的最佳实践在 这里:我不喜欢这个声明:(你不应该试图捕捉每个可能的地方的每一个例外.
我有一个问题,当我需要决定用try-catch语句包含一些代码块时,我知道应该包含代码是错误的代码,我必须检查我可以检查的内容,但是例如:我需要在一些文本文件中写一行,我应该检查文件是否存在,如果我有权写入它,我应该检查磁盘上是否有空间,或者磁盘是否可写,如果我检查了如果我在编写文件时发生了什么事情(其他一些应用程序或线程使用了空间,或者可移动驱动器已被删除?),如果我检查了这些内容并处理了IOException和SecurityException以及其他可能的异常,这是最佳实践吗? ,或者我应该只检查没有try-catch?
另一个例子:我正在使用EntityFramework来访问数据库,当访问某些内容时可能会联系数据库,我知道我应该检查连接是否关闭并尝试打开它,但是有很多很多东西可能会导致这个语句失败,数据库可能位于可移动驱动器上,此驱动器可能在读取时被删除,DBMS的服务可能因任何原因停止,不会抛出空间异常,数据库的方案可能会在我尝试执行某些代码后发生变化****原因,我如何防止我的代码失败,我可以检查我可以检查的每件事,然后继续吗?或者我应该使用try catch作为例外我可以期待,即使我已经检查了它们?
请给我你的答案参考,而不是一般的答案!
编辑
请务必阅读:http: //msdn.microsoft.com/en-us/library/seyhszts.aspx