对C++数组使用 try/catch

Using try/catch with C++ arrays

本文关键字:try catch C++ 数组      更新时间:2023-10-16

我正在尝试制作一个二十一点模拟器。玩家是一个存储从牌组发牌的类。如何使用 try/catch 来编写这个函数?

void Player::acceptCard(Card c)
{
    //        as long as there is space in the array myCards, place Card c into myCards
    //        if there is not enough space for another card, throw an exception
}

我更喜欢在这里返回简单的布尔值而不是异常:

在C++中,您无法确定您的异常是否会在某个地方被捕获(与例如Java相反)。如果有人使用你的类接口,他不知道可以抛出的异常(当然,除非他看过文档)。但返回类型立即可见。在我目前工作的公司中,我们使用异常不是针对错误(例如数组中没有足够的空间),而是针对异常(发生了一些事情,让您别无选择,只能编写一些错误日志,然后退出您的应用程序)

但是:如果你仍然想这样做:

  1. 创建您自己的从std::exception继承的异常类型
  2. 抛出该异常
  3. 用 try 包围您的函数调用...抓住