C#错误立即导致程序崩溃

时间:2018-08-14 15:39:19

标签: c# try-catch fault

//interface
[OperationContract]
[FaultContract(typeof(UserManagementFault))]
void AddUser(User user);

//class implements interface
public void AddUser(User user)
{
    //throw faultException (instant crash)
    throw new FaultException<UserManagementFault>(new UserManagementFault("User Excists"),
        new FaultReason("User Excists"));
}

//fault
[DataContract]
public class UserManagementFault
{
    private string _message;

    public UserManagementFault(string message)
    {
        _message = message;
    }

    [DataMember]
    public string Message { get { return _message; } set { _message = value; } }
}


//method invoker
try {
    AddUser();
} catch(FaultException<UserManagementFault>) {

}

当抛出新的FaultException行执行时,程序崩溃,但是我希望程序跳入代码底部的catch部分。 我在做什么错??

编辑:我注意到Visual Studio正在暂停程序,但是当我按“继续”时,程序进入了catch块...奇怪

1 个答案:

答案 0 :(得分:2)

自定义异常看起来像您的代码中的错误。我也要添加一个例外,以查看发生了什么事

try {
    AddUser();
} catch(FaultException<UserManagementFault>) {

}
catch(Exception ex) {

}