Запитання з тегом «exception-handling»

Виняток становить незвична умова, яка вимагає відхилення від нормального потоку програми. Зазвичай виняток не повинен спричинити повний збій, а замість цього повинен брати участь обробник винятків. Обробка винятків - це вбудована конструкція у багатьох мовах програмування. Зазвичай винятки обробляються розкручуванням стека, таким чином, поверненням до визначеного стану поза межами винятку, а потім викликом блоку обробника або підпрограми.

14
Чи слід успадковувати від std :: виключення?
Я бачив щонайменше одне надійне джерело (клас C ++, який я взяв), рекомендую, щоб специфічні для програми класи винятків у C ++ були успадковані від std::exception. Мені не зрозуміло переваги такого підходу. У C # причини успадкування з ApplicationExceptionних ясні: ви отримуєте кілька корисних методів, властивостей та конструкторів і просто …

10
Що таке метод printStackTrace () в Java?
Я проходжу програму розетки. У ньому printStackTraceвикликається IOExceptionоб'єкт в блоці catch. Що printStackTrace()насправді робить? catch(IOException ioe) { ioe.printStackTrace(); } Я не знаю його призначення. Для чого він використовується?

5
Обробка винятків у R [закрито]
Зачинено. Це питання не відповідає вказівкам щодо переповнення стека . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб воно було тематичним для переповнення стека. Закрито 4 роки тому . Удосконаліть це питання Хтось має приклади / навчальні посібники з обробки винятків в R? Офіційна документація дуже лаконічна.


3
Як надрукувати повний трас стека за винятком?
Наприклад, в одному місці ... //---------------a try { // some network call } catch(WebException we) { throw new MyCustomException("some message ....", we); } ... а в іншому місці ... //--------------b try { // invoke code above } catch(MyCustomException we) { Debug.Writeline(we.stacktrace); // <---------------- } Трафік стека, який я друкую, починається …

4
Як правильно отримати повідомлення про виключення в Python
Який найкращий спосіб отримувати повідомлення про винятки із компонентів стандартної бібліотеки в Python? Я помітив, що в деяких випадках ви можете отримати його через таке messageполе: try: pass except Exception as ex: print(ex.message) але в деяких випадках (наприклад, у разі помилок сокета) вам потрібно зробити щось подібне: try: pass except …

4
Спеціальні класи помилок Ruby: успадкування атрибута повідомлення
Здається, я не можу знайти багато інформації про власні класи винятків. Що я знаю Ви можете оголосити свій власний клас помилок і дозволити йому успадковуватись StandardError, тому це може бути rescued: class MyCustomError < StandardError end Це дозволяє підняти його за допомогою: raise MyCustomError, "A message" і пізніше, отримайте це …

3
Виловлювання винятків за допомогою “catch, when”
Я натрапив на цю нову функцію в C #, яка дозволяє виконувати обробник catch, коли виконується певна умова. int i = 0; try { throw new ArgumentNullException(nameof(i)); } catch (ArgumentNullException e) when (i == 1) { Console.WriteLine("Caught Argument Null Exception"); } Я намагаюся зрозуміти, коли це може колись бути корисним. …

4
Чому це твердження видає виняток формату при порівнянні структур?
Я намагаюся стверджувати рівність двох System.Drawing.Sizeструктур, і я отримую виняток формату замість очікуваної помилки затвердження. [TestMethod] public void AssertStructs() { var struct1 = new Size(0, 0); var struct2 = new Size(1, 1); //This throws a format exception, "System.FormatException: Input string was not in a correct format." Assert.AreEqual(struct1, struct2, "Failed. Expected …

1
Винятки в Єсоді
Я створив демон, який використовував дуже примітивну форму ipc(telnet і надіслати рядок, який містив певні слова в певному порядку). Я вирвався з нього і зараз використовую JSONдля передачі повідомлень на Yesodсервер. Однак, деякі речі мені дуже сподобались у моєму дизайні, і я не впевнений, який вибір зараз я маю. Ось …

10
Як я можу зловити 404?
У мене є такий код: HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "HEAD"; request.Credentials = MyCredentialCache; try { request.GetResponse(); } catch { } Як я можу виявити конкретну помилку 404? WebExceptionStatus.ProtocolError може лише виявити, що сталася помилка, але не дати точного коду помилки. Наприклад: catch (WebException ex) { if (ex.Status != …

4
Хороше рішення для await у try / catch / нарешті?
Мені потрібно викликати asyncметод у catchблоці, перш ніж знову викидати виняток (з його трасуванням стека), як це: try { // Do something } catch { // <- Clean things here with async methods throw; } Але, на жаль, ви не можете використовувати awaitа catchчи finallyблок. Я дізнався, що це тому, …

15
Дійсне використання goto для управління помилками в C?
Це питання насправді є результатом цікавої дискусії на programs.reddit.com деякий час тому. В основному це зводиться до наступного коду: int foo(int bar) { int return_value = 0; if (!do_something( bar )) { goto error_1; } if (!init_stuff( bar )) { goto error_2; } if (!prepare_stuff( bar )) { goto error_3; …

7
Як знайти, де було викинуто виняток у C ++?
У мене є програма, яка кидає десь невпійманий виняток. Все, що я отримую, - це повідомлення про кидок винятку і відсутність інформації про те, куди його було кинуто. Виглядає нелогічно, щоб програма, скомпільована, що містить символи налагодження, не повідомляла мене про те, де в моєму коді було створено виняток. Чи …

3
Як підняти виняток у Rails, щоб він поводився як інші винятки Rails?
Я хотів би викликати виняток, щоб він робив те саме, що робить звичайний виняток Rails. Спеціально покажіть виняток і стек стека в режимі розробки та покажіть сторінку "На жаль, але щось пішло не так" у виробничому режимі. Я спробував наступне: raise "safety_care group missing!" if group.nil? Але він просто пише …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.