Я занимаюсь разработкой консольного приложения .NET (с использованием моно). Я использую асинхронный ввод-вывод (Begin / EndReceive).
Я нахожусь в середине цепочки обратных вызовов глубиной в несколько уровней, и, если выброшено исключение, оно никуда не попадает (то, что я ожидаю, это пузырь на консоль, поскольку в настоящее время нет исключения обработка).
Однако, глядя на трассировку стека, когда я регистрирую ее в той точке, где она происходит, стек не показывает, что она возвращается к начальной точке выполнения.
Я попробовал трюк AppDomain.UnhandledException, но в этой ситуации это не работает.
System.ArgumentOutOfRangeException: Argument is out of range.
Parameter name: size
at System.Net.Sockets.Socket.BeginReceive (System.Byte[] buffer, Int32 offset, Int32 size, SocketFlags socket_flags, System.AsyncCallback callback, System.Object state) [0x00000]
at MyClass+State.BeginReceive () [0x00000]