Example #1
0
		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;
			}