Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
p519446 Гость
|
Добавлено: Пн Ноя 18 2002 18:56 Заголовок сообщения: C++ Builder: не могу вставить в try/catch свое сообщение об exception'e |
|
|
Люди, поможите дебютанту! В C++ Buikder 5 пишу: ... int a,b,c; a=10; b=0; try {c=a/b} catch(EDivByZero&) { Application->MessageBox("Не дели на ноль!", "...", MB_OK); } ... В настройках Tools/Debugger Options отключил флаги перехватов исключений отладчиком. Но система все равно выдает сообщение вида "Division by zero" ("в краткой форме", без предисловия типа "Process... raised exception... at address...). Если exe-шник запустить НЕ из облочки - то же самое, не помогает. Как ее заставить выводить МОЙ текст (внутри блока catch), по русски?! Заранее спасибо всем, кто ответит. |
|
Вернуться к началу |
|
|
Alexzhs
Зарегистрирован: 10.03.2002 Сообщения: 33
|
Добавлено: Пн Ноя 18 2002 21:26 Заголовок сообщения: Re: C++ Builder: не могу вставить в try/catch свое сообщение об exception'e |
|
|
Вообще так как ты делаешь должно работать. У меня работает по крайней мере. У исключения есть свойство Message (AnsiString) - Это сообщение, которое выводиться. если ты ему присвоишь другое значение ("Не дели на ноль!"), то будет оно выводится. |
|
Вернуться к началу |
|
|
nut888 Гость
|
Добавлено: Вт Ноя 19 2002 09:15 Заголовок сообщения: Re: C++ Builder: не могу вставить в try/catch свое сообщение об exception'e |
|
|
Попробуй catch(...) |
|
Вернуться к началу |
|
|
p519446 Гость
|
Добавлено: Вт Ноя 19 2002 09:28 Заголовок сообщения: Пробовал - не помогает. Есть вопрос по поводу действия throw! |
|
|
Господа, а почему, если внутри блока try{} вставить строку вида throw(DivByZero), как здесь: try{ if (b==0) throw (DivByZero); c=a/b; } catch(DivByZero) { ... } -- то при b=0 выводится error-сообщение "C++ exception", хотя в опциях отладчика я отключил перехват C++ EXCEPTION'ОВ. Объясните, пжлст, как правильно пользоваться этим throw. Спасибо весем, кто ответит |
|
Вернуться к началу |
|
|
yoshi Гость
|
Добавлено: Вт Ноя 19 2002 09:52 Заголовок сообщения: Re: Пробовал - не помогает. Есть вопрос по поводу действия throw! |
|
|
Ответ насчет первого вопроса пробуй так - будет работать, но вводит некоторые неудобства
try { b=a/c; } __except(1) {ShowMessage("DivByZero");} |
|
Вернуться к началу |
|
|
|