C++ 如果弹出空队列,则引发异常

C++ Throwing Exception If Popping Empty Queue

本文关键字:异常 队列 如果 C++      更新时间:2023-10-16

我正在使用C++中的链表节点编写优先级队列的实现。

我是该语言的新手,如果有人能帮助我弄清楚在空队列上调用 pop() 函数时如何抛出异常,我将不胜感激。

我尝试使用尝试并捕获异常处理,但我的代码不断收到"隔离错误错误"

我的优先级队列正确实现.. push(), isEmpty(), size(), clear() 工作. pop() 也可以,但如果用户进行非法调用,我想抛出异常。

try {
    if(isEmpty()) {
        throw -1;
    }
}
catch(int n) {
    cout << "ERROR" << n << ": LIST IS EMPTY" << endl;
}

你抛出了一个带有 throw 语句的异常。不涉及任何trycatch。调用方负责捕获异常。

if (isEmpty())
    throw -1;

抛出一个整数作为异常在 c++ 中真的不是完成的事情。您确实应该为作业创建一个新的异常,或者选择一个可能适合情况的现有异常 std 库。

http://www.java2s.com/Tutorial/Cpp/0120__Exceptions/Throwyourownexceptionclassbasedonruntimeerror.htm

是的,域说java,但它是一个c ++教程,并且有一个如何创建从std::runtime_error派生的自定义异常的示例。