相关疑难解决方法(0)

如何在一个catch块中捕获所有类型的异常?

在C++中,我试图在一个catch中捕获所有类型的异常(比如catch(Exception)在C#中).怎么做?更重要的是,如何才能捕获除零例外?

c++ exception-handling try-catch

10
推荐指数
3
解决办法
2万
查看次数

C#try {} catch {}

嗨,谢谢你的阅读.我是编程和C#和套接字编程的新手.在我的代码中,我尝试捕获问题,以便在我的应用程序中提供故障.下列:

        catch (ArgumentNullException e)
        {
            OnNetworkEvents eventArgs = new OnNetworkEvents("Network Unavailable", e.Message);
            OnUpdateNetworkStatusMessage(this, eventArgs);
        }
        catch (EncoderFallbackException e)
        {
            OnNetworkEvents eventArgs = new OnNetworkEvents("Network Unavailable", e.Message);
            OnUpdateNetworkStatusMessage(this, eventArgs);
        }
        catch (SocketException e)
        {
            OnNetworkEvents eventArgs = new OnNetworkEvents("Network Unavailable", e.Message);
            OnUpdateNetworkStatusMessage(this, eventArgs);
        }
        catch (ArgumentOutOfRangeException e)
        {
            OnNetworkEvents eventArgs = new OnNetworkEvents("Network Unavailable", e.Message);
            OnUpdateNetworkStatusMessage(this, eventArgs);
        }
        catch (ObjectDisposedException e)
        {
            OnNetworkEvents eventArgs = new OnNetworkEvents("Network Unavailable", e.Message);
            OnUpdateNetworkStatusMessage(this, eventArgs);
        }
Run Code Online (Sandbox Code Playgroud)

我只是想知道我是否可以用一个单一替换这个重复的代码:

catch (Exception e) { handle here}
Run Code Online (Sandbox Code Playgroud)

这会有用吗?

再次感谢.

c# exception-handling

10
推荐指数
2
解决办法
4718
查看次数

您想在哪里捕获异常以及为什么?

您想在哪里捕获异常以及为什么?

我很有兴趣看到人们发现将try/catch块放在哪里是有用的,希望可能出现一些通用模式.我将用C++发布我的两个示例答案,但任何语言都可以.

请回答一个位置和原因.谢谢.

architecture error-handling design-patterns exception error-reporting

9
推荐指数
3
解决办法
2063
查看次数

如何编写一个函数来调用另一个函数并捕获一些异常?

我有一系列具有不同参数签名的函数:

public void function1 (string s1, string s1, string s3, string s4) {...}
public void function2 (int i1, int i2, string s3, string s4) {...}    
public void function3 (int i1, string s2, int i3, string s4) {...}
.
.
etc //some 30 odd functions
Run Code Online (Sandbox Code Playgroud)

调用每个函数可能会抛出一组异常,如TimeoutException,CommunicationException等(是的,这些是WCF代理函数)

现在我必须将这些调用包装在try catch块中,但DRY原则说我写错了很多相同的try catch块:

public void Interfacefunction1 (...) {
    try {
        function1 (...);
    }
    catch (TimeoutException) {
        taskResult.Success = false;
        taskResult.Message = Resources.ServerConnectionBroke;
    }            
    catch (CommunicationException) {
        taskResult.Success = false;
        taskResult.Message = Resources.CommunicationFailed;
    }
}

//and... …
Run Code Online (Sandbox Code Playgroud)

.net c# exception

2
推荐指数
1
解决办法
486
查看次数