草庐IT

try-catch-rethrow

全部标签

c# - 如何使用 try and catch 捕获 C# 中的所有异常?

我想编写一些try和catch来捕获任何类型或异常,这段代码是否足够(这就是Java中的做法)?try{code....}catch(Exceptionex){}或者应该是try{code....}catch{}? 最佳答案 这两种方法都会捕获所有异常。您的两个代码示例之间没有显着差异,只是第一个代码示例会生成编译器警告,因为ex已声明但未使用。但请注意,有些异常是特殊的,会自动重新抛出。ThreadAbortExceptionisaspecialexceptionthatcanbecaught,butitwillautomatic

c# - 在 catch block 中返回?

在catchblock中有一个return语句是错误的吗?有哪些替代方案?即:publicboolSomeFunction(){try{//somecodereturntrue;}catch(Exceptionex){MessageBox.Show(ex.message);returnfalse;}} 最佳答案 您可以从catchblock正常返回。它通常是很好的功能代码。 关于c#-在catchblock中返回?,我们在StackOverflow上找到一个类似的问题:

c# - 在 catch block 中返回?

在catchblock中有一个return语句是错误的吗?有哪些替代方案?即:publicboolSomeFunction(){try{//somecodereturntrue;}catch(Exceptionex){MessageBox.Show(ex.message);returnfalse;}} 最佳答案 您可以从catchblock正常返回。它通常是很好的功能代码。 关于c#-在catchblock中返回?,我们在StackOverflow上找到一个类似的问题:

解决Docker运行命令时提示“Got permission denied while trying to connect to the Docker daemon socket“类情况,提示如下

 解决方法1使用sudo获取管理员权限,运行docker命令。解决方法2docker守护进程启动的时候,会默认赋予名字为docker的用户组读写Unixsocket的权限,因此只要创建docker用户组,并将当前用户加入到docker用户组中,那么当前用户就有权限访问Unixsocket了,进而也就可以执行docker相关命令。sudogroupadddocker#添加docker用户组sudogpasswd-a$USERdocker#将登陆用户加入到docker用户组中newgrpdocker#更新用户组dockerps#测试docker命令是否可以使用sudo正常使用检查是否成功:执行"d

c# - 什么更好 : int. TryParse 或 try { int.Parse() } catch

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion我知道..我知道...性能不是这里的主要关注点,只是出于好奇,什么更好?boolparsed=int.TryParse(string,outnum);if(parsed)...或try{int.Parse(string);}catch(){dosomething...}

c# - 什么更好 : int. TryParse 或 try { int.Parse() } catch

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion我知道..我知道...性能不是这里的主要关注点,只是出于好奇,什么更好?boolparsed=int.TryParse(string,outnum);if(parsed)...或try{int.Parse(string);}catch(){dosomething...}

c# - : test-create, try-create、create-catch 哪种设计最可取?

假设有一个创建用户的操作。如果存在指定的电子邮件或用户名,此操作可能会失败。如果它失败了,则需要确切地知道原因。在我看来,有三种方法可以做到这一点,我想知道是否有明显的赢家。所以,这是一个类用户:classUser{publicstringEmail{get;set;}publicstringUserName{get;set;}}创建操作有3种方式:测试创建if(UserExists(user))actonuserexistserror;if(UsernameExists(user))actonusernameexistserror;CreateUser(user);UserExist

c# - : test-create, try-create、create-catch 哪种设计最可取?

假设有一个创建用户的操作。如果存在指定的电子邮件或用户名,此操作可能会失败。如果它失败了,则需要确切地知道原因。在我看来,有三种方法可以做到这一点,我想知道是否有明显的赢家。所以,这是一个类用户:classUser{publicstringEmail{get;set;}publicstringUserName{get;set;}}创建操作有3种方式:测试创建if(UserExists(user))actonuserexistserror;if(UsernameExists(user))actonusernameexistserror;CreateUser(user);UserExist

c# - 使用 'try-finally' block 而不使用 'catch' block

在某些情况下是否适合使用try-finallyblock而不使用catchblock? 最佳答案 您可以使用它来确保某些操作发生在try内容之后或发生异常时,但您不希望使用该异常。需要说明的是,这并没有隐藏异常。finallyblock在异常传播到调用堆栈之前运行。当你使用using关键字时,你也会无意中使用它,因为这会编译成一个try-finally(不是一个精确的转换,但为了论证它是足够接近)。try{TrySomeCodeThatMightException();}finally{CleanupEvenOnFailure();

c# - 使用 'try-finally' block 而不使用 'catch' block

在某些情况下是否适合使用try-finallyblock而不使用catchblock? 最佳答案 您可以使用它来确保某些操作发生在try内容之后或发生异常时,但您不希望使用该异常。需要说明的是,这并没有隐藏异常。finallyblock在异常传播到调用堆栈之前运行。当你使用using关键字时,你也会无意中使用它,因为这会编译成一个try-finally(不是一个精确的转换,但为了论证它是足够接近)。try{TrySomeCodeThatMightException();}finally{CleanupEvenOnFailure();