Разница между броском и броском ex в C#
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace throwMyDemo { class Program { static void Main(string[] args) { RaiseExcption r = new RaiseExcption(); try { r.Without(); } catch(MyException ex1) { Console.WriteLine(ex1.Message); Console.WriteLine(ex1.StackTrace); Console.Read(); } try { r.With(); } catch (MyException ex2) { Console.WriteLine(ex2.Message); Console.WriteLine(ex2.StackTrace); Console.Read(); Console.Read(); } } } class MyException : Exception { public MyException():base() { } } class RaiseExcption { public void Without() { try { throw new MyException(); } catch (MyException me) { throw; } } public void With() { try { throw new MyException(); } catch (MyException me) { throw me; } } } }
Я написал этот код, чтобы проверить разницу между throw и throw ex, но, к сожалению, он не работает. Я имею в виду, что трассировка стека как для with, так и для without указывает местоположение ошибки как throw statment, а не указывает точное местоположение ошибки, где было выброшено исключение.
throw new MyException()
- Кто-нибудь может мне в этом помочь? Заранее спасибо
Alan N
Я исправил форматирование кода, и теперь вам нужно отредактировать вопрос и рассказать нам, что означает "не работает". Каковы были ожидаемые и фактические результаты программы?
puja11191
Привет, Алан, спасибо за форматирование кода. На самом деле, когда я запускаю код, трассировка стека как с (), так и без() показывает один и тот же результат. Но, как я и ожидал, когда мы используем throw, он должен показывать точную точку в приложении, где произошла ошибка. Пожалуйста, свяжитесь со мной для получения дополнительных разъяснений по этому вопросу. Заранее спасибо
[no name]
Редактировать: добавлен код блока