在Cosmos DB存储过程中抛出错误并在C#中捕获

时间:2018-04-25 09:32:25

标签: azure azure-cosmosdb

Cosmos DB需要用JavaScript编写的存储过程来执行事务(参见Cosmos DB server-side programming)。

然后我从C#调用该存储过程。

在此类存储过程中抛出错误时,我希望能够推断出抛出的错误类型(例如,包含错误代码)。

返回给我的调用者的异常类型为DocumentClientException,状态代码为400 Bad request。如果我抛出一个对象,例如throw {Code: 1, Text: "Some text"};我将Exception = [object Object]作为错误消息的一部分返回,如果我改为throw "Some text";,则获取Exception = Some text }。

除了尝试解析错误消息文本(部分是来自Cosmos DB的文本,部分是来自于什么)之外,是否有办法获取以JSON引发的对象或其他方式来了解抛出了哪个错误抛出)?

1 个答案:

答案 0 :(得分:0)

不幸的是,我认为目前没有办法。在我的存储过程中,我抛出一个带有一些JSON消息的Error对象。在C#方面,我解析Exception以获取我的JSON错误对象并对其进行反序列化。