小编use*_*591的帖子

如何确定asp.net Web服务抛出的异常类型?

我有一个asp.NET Web服务(不是WCF,而是带有WebMethods的经典.asmx),它会抛出异常.所有异常都来自两个基本异常类之一(两者都派生自Exception):

public class InputException : Exception
{
   ....
}

public class FatalException : Exception
{
    ....
}

public class NoFilesFound: FatalException
{
   ....
}

....
Run Code Online (Sandbox Code Playgroud)

Web服务现在根据需要抛出异常.在我的客户端代码中,我可以捕获异常并看到如下消息:

Server was unable to process request. ---> There were no files found

但是异常是FaultException类型(当我在捕获的异常上执行.GetType()时看到).调用客户端需要能够区分InputException和FatalException(并且最佳地区分各个派生的但却不那么重要).现在唯一的方法是解析消息,在"--->"之前剥离文本并打开文本.这显然不是最佳的.

我知道我可以使用自定义代码抛出SoapExceptions但我想尽可能避免这种情况.此外,它似乎是为那些处理XML的人而设计的,但是我们所有的web服务代码都没有触及XML,因为它已经为我们反序列化了.

简而言之,我是否有办法从Web服务中抛出自定义异常,并且调用客户端能够区分异常?

c# asp.net soap web-services exception

5
推荐指数
1
解决办法
1847
查看次数

标签 统计

asp.net ×1

c# ×1

exception ×1

soap ×1

web-services ×1