我使用archlinux,并且默认情况下从pacman安装ntl。

我在代码中捕获InvMod错误时遇到问题,也许有人遇到相同的问题,现在可以解决此问题:

try {
          Q = Q + p;
        } catch (...) {
          std::cout<<"error?";
          return;
        }


在+运算符中,我有模的逆,因为一切都在有限域内。

我收到此消息:

InvMod: inverse undefined
fish: 'and ./crypto' terminated by signal SIGABRT (Abort)


我想捕获此错误,因为我需要知道何时无法逆转某个点。任何人都知道如何在ntl :)中执行此操作吗?

最佳答案

根据documentation的说法,如果您希望它引发异常,而不仅仅是调用abort()(当前似乎正在这样做),则需要使用NTL_EXCEPTIONS=on对其进行配置。

09-06 00:05