Я не могу заставить мой try / catch работать правильно. Когда вы реализуете try / catch, предполагается, что он «выбрасывает» любую строку, которую вы ему сказали, верно? И если вы хотите, пусть программа продолжается. Ну, мой не говорит то, что я хочу, и не продолжает, вместо этого он говорит мне об этом, а затем прерывает:
Ошибка отладки !! Бла бла бла.exe
R6010 -abort () вызван (Нажмите Retry для отладки приложения)
Я хочу сказать: «Вы пытаетесь добавить больше элементов, чем разрешено. Не делайте.», А затем продолжайте работу с программой. Это LinkedList, он не должен содержать более 30 узлов. Он останавливается, когда пытается добавить больше 30, но не так, как я хочу. Я не уверен, что я делаю не так, помогите очень признателен!
Main:
Collection<int> list;
for(int count=0; count < 31; count++)
{
try
{
list.addItem(count);
cout << count << endl;
}
catch(string *exceptionString)
{
cout << exceptionString;
cout << "Error";
}
}
cout << "End of Program.\n";
Collection.h:
template<class T>
void Collection<T>::addItem(T num)
{
ListNode<T> *newNode;
ListNode<T> *nodePtr;
ListNode<T> *previousNode = NULL;
const std::string throwStr = "You are trying to add more Items than are allowed. Don't. ";
// If Collection has 30 Items, add no more.
if(size == 30)
{
throw(throwStr);
}
else
{}// Do nothing.
// Allocate a new node and store num there.
newNode = new ListNode<T>;
newNode->item = num;
++size;
// Rest of code for making new nodes/inserting in proper order
// Placing position, etc etc.
}