Проблема, с которой я сталкиваюсь при использовании C++, заключается в том, что любая выполненная обработка ошибок имеет о которых следует подумать ДО раздачи (подумайте о попытке/пойме или массивных условных предложениях). По моему опыту, проблемы в коде не продумываются заранее, иначе проблем не было бы с самого начала.
Написание кроссплатформенного приложения без кросс-платформенного приложения Механизм обработки/отчетности/трассировки ошибок платформы меня немного пугает.
Мой вопрос: существует ли какой-либо специальный «универсальный» перехват ошибок в Qt или C++? механизм, который я могу использовать в своем приложении, чтобы в случае чего что-то пойдет не так, я могу хотя бы написать отчет до того, как он выйдет из строя?
Пример:
Код: Выделить всё
class MainWindow: public QMainWindow
{
[...]
public slots:
void add_clicked();
}
void MainWindow::add_clicked()
{
QFileDialog dlg(this, Qt::Sheet);
QString filename = dlg.getOpenFileName(this);
if(!filename.isEmpty())
{
QStringList path = filename.split(QDir::separator());
QString file = path.at(path.count()); // Index out of range assertion.
if(!lst_tables->openDatabase(filename))
{
[...]
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/466 ... r-handling
Мобильная версия