我正在使用C ++中的链表节点编写优先级队列的实现。
我是该语言的新手,如果有人可以帮我弄清楚如何在空队列上调用pop()函数时弄清楚异常,我会非常感激。
我尝试过使用try和catch异常处理但是我的代码不断出现“segmenation fault error”
我的优先级队列正确实现.. push(),isEmpty(),size(),clear()工作。 pop()也起作用但我想在用户进行非法调用时抛出异常。
try {
if(isEmpty()) {
throw -1;
}
}
catch(int n) {
cout << "ERROR" << n << ": LIST IS EMPTY" << endl;
}
答案 0 :(得分:1)
将整数作为异常抛出真的不是c ++中的完成。你真的应该为这个工作创建一个新的例外,或者选择一个可能符合情况的现有例外std库。
是的,域名是java,但它是一个c ++教程,并有一个如何创建从std :: runtime_error派生的自定义异常的示例。
答案 1 :(得分:1)
使用throw语句抛出异常。没有涉及try
或catch
。调用者有责任捕获异常。
if (isEmpty())
throw -1;