//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块...奇怪
答案 0 :(得分:2)
自定义异常看起来像您的代码中的错误。我也要添加一个例外,以查看发生了什么事
try {
AddUser();
} catch(FaultException<UserManagementFault>) {
}
catch(Exception ex) {
}