C++ 如果弹出空队列,则引发异常
C++ Throwing Exception If Popping Empty Queue
我正在使用C++中的链表节点编写优先级队列的实现。
我是该语言的新手,如果有人能帮助我弄清楚在空队列上调用 pop() 函数时如何抛出异常,我将不胜感激。
我尝试使用尝试并捕获异常处理,但我的代码不断收到"隔离错误错误"
我的优先级队列正确实现.. push(), isEmpty(), size(), clear() 工作. pop() 也可以,但如果用户进行非法调用,我想抛出异常。
try {
if(isEmpty()) {
throw -1;
}
}
catch(int n) {
cout << "ERROR" << n << ": LIST IS EMPTY" << endl;
}
你抛出了一个带有 throw 语句的异常。不涉及任何try
或catch
。调用方负责捕获异常。
if (isEmpty())
throw -1;
抛出一个整数作为异常在 c++ 中真的不是完成的事情。您确实应该为作业创建一个新的异常,或者选择一个可能适合情况的现有异常 std 库。
http://www.java2s.com/Tutorial/Cpp/0120__Exceptions/Throwyourownexceptionclassbasedonruntimeerror.htm
是的,域说java,但它是一个c ++教程,并且有一个如何创建从std::runtime_error派生的自定义异常的示例。
相关文章:
- boost::进程间消息队列引发错误
- 处理多个异常集合的C++方法
- 如果我只是不访问queue_front节点的子节点,而是将它们推到队列中呢?还是BFS吗
- 我在c++代码中生成了一个运行时#3异常
- 孤立代码块在结构中引发异常
- C++中的赋值发生,尽管右侧出现异常
- Android NDK传感器向事件队列报告奇怪的间隔
- C++优先级队列,按对象的唯一指针的特定方法升序排列
- 按对象的特定方法按升序排列的C++优先级队列
- 使用2个键的cpp-stl::优先级队列排序不正确
- 从构造函数抛出异常时如何克服内存泄漏
- 异常属于C++中的线程还是进程
- 当类定义不可见时捕获异常
- 引发异常:读取访问冲突**dynamicArray**为0x1118235.发生
- 为什么异常不退出程序?
- 我是否需要在下一次转移时将所有权*转移回转移队列
- 为什么我应该在异常处理中使用std::cerr而不是std::cout
- C++ 如果弹出空队列,则引发异常
- 队列用户APC - 抛出异常崩溃,可能是 mingw 错误
- 2队列的并交(异常分割故障)