Функция, с которой я борюсь, выглядит так: (
Код: Выделить всё
statusКод: Выделить всё
Status leave_class(int studentId){
//check validity of input
try{
if(numStudents==1){
#remove class from nonEmptyClasses
#add class to emptyClasses
}
Class->removeStudent(studentId)
}
catch(...){
Return status::allocation_error
}
Students->leave() //this line changes student fields to ints of 0 and nullptr for pointers
Return status::successs
}
Например, если мне удалось удалить класс из nonEmptyClasses и не удалось добавить его в пустые классы, Мне нужно отменить удаление, что также может привести к ошибка.
Я думал о том, чтобы разделить действия на несколько функций или использовать несколько блоков try, но все время возвращаюсь к исходной точке 1.
Есть какие-нибудь рекомендации?
Подробнее здесь: https://stackoverflow.com/questions/793 ... ause-error
Мобильная версия