Итак, у меня есть код в Java, теперь я хочу это в C ++. Все хорошо, но у меня проблемы с исключениями.
В классе 'Test' в Java У меня есть
try {
k = Integer.parseInt(args[i]);
}
catch (OutOfRangeException ex) {
System.out.println(args[i]+ ex.getMessage());
}
Это 'OutOfRange. java'
public class OutOfRangeException extends Exception {
public OutOfRangeException (String message) {
super (message);
}
}
И метод из другого класса который выдает это исключение
public int number (int m) throws OutOfRangeException {
if (m < 0 || m >= arr.length) {
throw new OutOfRangeException(" - number out of range");
}
return arr[m];
}
};
Я не могу получить тот же эффект с C ++, я много читал об этом, но все же он не работает (я получаю 'dynamici c спецификации исключений в устаревшем C ++ 11 ', когда дело доходит до' throw ', но я также не знаю, как получить сообщение в C ++).
Есть ли способ, которым я могу сделать это, как в Java?
Я пробовал что-то вроде этого: В основном:
try {
k = stoi(argv[i]);
}
catch (OutOfRangeException &e) {
cout << argv[i]<< endl;
}
Метод:
int PrimeNumbers: number (int m) throw (OutOfRangeException) {
if (m < 0 || m >= sizeof(arr)) {
throw OutOfRangeException(" - number out of range");
}
return arr[m];
}
и конструктор OutOfRangeException
OutOfRangeException::OutOfRangeException(string message) {
cout<<message;
}
Дело в том, что я получаю эту ошибку «dynamici c exception ...», и я не нашел другого способа сделать это, поэтому я бы будь доволен этим.