Если у вас есть основания полагать, что индекс не находится под вашим контролем, или если поток управления особенно сложен и вы отслеживаете ошибки, то вы можете использовать at()
на этапе отладки, но не внутри циклы или любая ситуация, когда вы знаете, что индекс безопасен.
Даже в других ситуациях вы должны либо предварительно проверить индекс (например, если он введен пользователем), либо, если вы просто получаете значение из сложного алгоритма, используйте assert
и исправьте ошибку, если она есть. [Править.] Или, возможно, если вы пишете очень сложный алгоритм и вы не уверены, что все ваши индексы всегда действительны, вы можете использовать at()
внутри этого алгоритма и попробовать выполнить попытку блок - но даже здесь предпочтительнее быть оскорбительным и использовать с утверждениями. [/]
Лично я не вижу веских причин для at()
выживания в коде релиза. Возможно, вы могли бы придумать несколько примеров, в которых вы хотите использовать обработку исключений в качестве удобного способа управления потоком управления, но любой такой вариант использования будет очень ситуативным.