Firebreath承诺拒绝切片异常

时间:2015-11-11 09:49:05

标签: firebreath

有没有办法将任何有意义的消息,而不是“std :: exception”传递给promise的失败回调?在源代码中我发现了以下“void FB :: variantDeferred :: reject(std :: exception e)const”规范。似乎当使用从std :: exception派生的任何异常调用reject时,切片发生并且正确的异常消息丢失。是否有任何解决方法,但通过成功回调传递错误?

1 个答案:

答案 0 :(得分:0)

std::exception只是用于在C ++中创建异常的基类。您可以使用许多不同的方法来传回特定的字符串;例如,你可以抛出std::runtime_error,它接受​​一条消息。

你也可以继承std :: exception并提供std::exception::what的实现,它返回你想要的有用的字符串表示。

FireBreath 2.0将在创建Error对象时使用来自e.what()的错误消息。你可以在代码中找到这个,如果你很好奇它是如何工作的: