WCF的例外情况
WCF客户端可以抛出哪些异常 我通常会捕捉到WCF的例外情况,wcf,exception-handling,Wcf,Exception Handling,WCF客户端可以抛出哪些异常 我通常会捕捉到通信故障异常,通信异常,TIMOUTEException以及一些其他但不时出现的新异常,例如最近发生的quotaExceedeException 没有可捕获的公共基(例外除外),所以有人有完整的列表吗?为什么会有完整的列表?这不是Java 为什么要捕获一个不理解的异常?如果你不知道它的意思,你会如何“处理”它 如果您愿意,可以继续捕获异常以记录它们,但在捕获异常后应该重新调用。让异常传播到一些知道如何处理它的代码中。为什么会有一个完整的列表?这不是Ja
通信故障异常
,通信异常
,TIMOUTEException
以及一些其他但不时出现的新异常,例如最近发生的quotaExceedeException
没有可捕获的公共基(例外除外),所以有人有完整的列表吗?为什么会有完整的列表?这不是Java 为什么要捕获一个不理解的异常?如果你不知道它的意思,你会如何“处理”它
如果您愿意,可以继续捕获异常以记录它们,但在捕获异常后应该重新调用。让异常传播到一些知道如何处理它的代码中。为什么会有一个完整的列表?这不是Java 为什么要捕获一个不理解的异常?如果你不知道它的意思,你会如何“处理”它
如果您愿意,可以继续捕获异常以记录它们,但在捕获异常后应该重新调用。让异常传播到一些知道如何处理它的代码。这可能是一个很好的开始:。这可能是一个很好的开始:。只是大声想一想。。。一种解决办法可以是:
CException
exception
块中捕获异常后,立即将另一个异常抛出到ceexception
类中。例如:
catch(Exception ex){throw new ceexception(“发生错误”,ex);}
看。只是大声思考。。。一种解决办法可以是:
CException
exception
块中捕获异常后,立即将另一个异常抛出到ceexception
类中。例如:
catch(Exception ex){throw new ceexception(“发生错误”,ex);}
请参阅。对于所有WCF异常,
通信异常
是基本异常。如果你抓住了这个,你就抓住了所有与WCF相关的东西
看。它还将很好地显示所有派生类的列表,例如,WCF中可能出现的所有更具体的异常-相当长的列表 通信异常是所有WCF异常的基本异常。如果你抓住了这个,你就抓住了所有与WCF相关的东西
看。它还将很好地显示所有派生类的列表,例如,WCF中可能出现的所有更具体的异常-相当长的列表 不是很有帮助。不幸的是,WCF的设计使得客户端通常需要捕获CommunicationException和TimeoutException,并中止通道,如daft更有用的答案中链接的文章所述。设计糟糕,因为using语句不能用于执行清理,但我们必须接受它。有趣的问题是,像QuoteAExceedeException这样的其他异常类型是否需要这种特殊处理——我怀疑不是,但不确定。其目的并不是要将它们全部捕获。我只想知道应该期待哪一个,这样我就可以决定如何处理它们。因为我不知道QuotaExceed,它被捕获在我的应用程序顶级捕获中,这似乎是处理wcf配置问题的错误位置。如果你不知道它们,那么你不知道如何处理它们,所以别管它们!我以为stackoverflow的整个想法是了解我不知道的事情,这样我就可以(也许)对它们做点什么。@adrianm:了解这个。对于大多数异常,您不能“做点什么”。在几乎所有情况下,正确的行动是什么也不做。如果您实际上无法解决问题,那么您只需记录异常或添加其他信息。除此之外,我向你保证,与人们的期望和普遍的信念相反,你最好什么都不做,没有多大帮助。不幸的是,WCF的设计使得客户端通常需要捕获CommunicationException和TimeoutException,并中止通道,如daft更有用的答案中链接的文章所述。设计糟糕,因为using语句不能用于执行清理,但我们必须接受它。有趣的问题是,像QuoteAExceedeException这样的其他异常类型是否需要这种特殊处理——我怀疑不是,但不确定。其目的并不是要将它们全部捕获。我只想知道应该期待哪一个,这样我就可以决定如何处理它们。因为我不知道QuotaExceed,它被捕获在我的应用程序顶级捕获中,这似乎是处理wcf配置问题的错误位置。如果你不知道它们,那么你不知道如何处理它们,所以别管它们!我以为stackoverflow的整个想法是了解我不知道的事情,这样我就可以(也许)对它们做点什么。@adrianm:了解这个。对于大多数异常,您不能“做点什么”。在几乎所有情况下,正确的行动是什么也不做。如果您实际上无法解决问题,那么您只需记录异常或添加其他信息。除此之外,我向你保证,与人们的期望和普遍看法相反,你最好什么都不做。谢谢。不幸的是,该页面只讨论了我已经捕获的(通信和超时)和我不想捕获的(无效操作、参数等)。谢谢。不幸的是,该页面只讨论我已经捕获的(通信和超时)和我不想捕获的(无效操作、参数等)。为什么这样做是件好事?让异常保持未捕获状态,它将在没有自定义异常的情况下正常传播。@John:我在想,捕捉到了异常