private void HandleException(Exception exception, bool isWpf) { try { exception.LogError(); if (!isWpf) return; if (!_isInitialized) { if (MainWindow != null) _isInitialized = !MainWindow.GetValue<Window, VoidType, bool>("IsSourceWindowNull", null); } if (ShowExceptions) { var builder = new MessageBoxBuilder() .Text(exception.ToString()) .Error(); if (_isInitialized) { try { builder.Owner(Current.GetActiveOrMainWindow()); } catch { builder.Owner(MainWindow); } } builder.Show(); } if (!_isInitialized) Close(); } catch (Exception e) { try { e.LogError(); } catch (Exception e1) { // как последняя возможность вывести ошибки Trace.WriteLine(e); Trace.WriteLine(e1); } Close(); // в процессе показа диалога с ошибкой у нас ошибка - значит все совсем плохо. } }
public bool HandleError(Exception error) { error.LogError(); return true; }