对C++数组使用 try/catch
Using try/catch with C++ arrays
我正在尝试制作一个二十一点模拟器。玩家是一个存储从牌组发牌的类。如何使用 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相反)。如果有人使用你的类接口,他不知道可以抛出的异常(当然,除非他看过文档)。但返回类型立即可见。在我目前工作的公司中,我们使用异常不是针对错误(例如数组中没有足够的空间),而是针对异常(发生了一些事情,让您别无选择,只能编写一些错误日志,然后退出您的应用程序)
但是:如果你仍然想这样做:
- 创建您自己的从
std::exception
继承的异常类型 - 抛出该异常
- 用 try 包围您的函数调用...抓住
相关文章:
- 编译器是否必须始终删除 try-catch 块(如果它被证明是非抛出的)
- 有没有更好的方法来处理异常? try-catch块真的很丑
- 我可以使用 try catch 语句来捕获任何错误而不是具体错误吗?
- 在大型应用程序的main上使用try-catch
- RapidXML 节点在 try catch 块中具有正确的值,但它在块外为 nullptr
- 提取 try-catch 时出现运行时错误
- std::unique_ptr 在 try-catch 块中未捕获取消引用异常
- 何时删除 try-catch 块中的指针
- 是否有理由大多数/所有 try-catch 示例只对 throw 语句使用 void 子函数
- 循环try..catch ..确保输入有效或使用控制语句
- 构造函数中的异常:init() 方法、指针、大型 try/catch 或
- C++ C2509 在讲师的定义中使用 try: - catch
- 为什么未达到的 try-catch 块会增加运行时时间
- 在 C++ 中使用 try-catch 进行删除 [] 或删除操作是否必要
- ex.nested try-catch中的什么()更改
- 为什么 c++ try-catch 块不能在 ubuntu 上与 g++ 一起使用?
- 格式化文件异常被 try catch 块忽略
- libpng错误不会被try/catch块捕获
- 在 C++ 和 C# 中使用 try/catch 的正确方法是什么?
- c++中try-catch块的catch中使用了哪些参数