diff --git a/src/Main/Base/Project/Src/Services/File/FileService.cs b/src/Main/Base/Project/Src/Services/File/FileService.cs index 07b41e60d1..f3f115975f 100644 --- a/src/Main/Base/Project/Src/Services/File/FileService.cs +++ b/src/Main/Base/Project/Src/Services/File/FileService.cs @@ -412,8 +412,7 @@ namespace ICSharpCode.SharpDevelop Directory.Delete(fileName, true); } } catch (Exception e) { - MessageService.ShowException(e, "Can't remove directory " + fileName); -// return; + MessageService.ShowHandledException(e, "Can't remove directory " + fileName); } } else { try { @@ -424,8 +423,7 @@ namespace ICSharpCode.SharpDevelop File.Delete(fileName); } } catch (Exception e) { - MessageService.ShowException(e, "Can't remove file " + fileName); -// return; + MessageService.ShowHandledException(e, "Can't remove file " + fileName); } } } @@ -464,9 +462,9 @@ namespace ICSharpCode.SharpDevelop } } catch (Exception e) { if (isDirectory) { - MessageService.ShowException(e, "Can't rename directory " + oldName); + MessageService.ShowHandledException(e, "Can't rename directory " + oldName); } else { - MessageService.ShowException(e, "Can't rename file " + oldName); + MessageService.ShowHandledException(e, "Can't rename file " + oldName); } return false; } @@ -508,9 +506,9 @@ namespace ICSharpCode.SharpDevelop } } catch (Exception e) { if (isDirectory) { - MessageService.ShowException(e, "Can't copy directory " + oldName); + MessageService.ShowHandledException(e, "Can't copy directory " + oldName); } else { - MessageService.ShowException(e, "Can't copy file " + oldName); + MessageService.ShowHandledException(e, "Can't copy file " + oldName); } return false; } diff --git a/src/Main/Core/Project/Src/Services/MessageService/MessageService.cs b/src/Main/Core/Project/Src/Services/MessageService/MessageService.cs index ca41f38b4f..20777b1058 100644 --- a/src/Main/Core/Project/Src/Services/MessageService/MessageService.cs +++ b/src/Main/Core/Project/Src/Services/MessageService/MessageService.cs @@ -52,6 +52,33 @@ namespace ICSharpCode.Core ServiceManager.Instance.MessageService.ShowException(ex, message); } + /// + /// Shows an exception. + /// + public static void ShowHandledException(Exception ex) + { + ShowHandledException(ex, null); + } + + /// + /// Shows an exception. + /// + public static void ShowHandledException(Exception ex, string message) + { + LoggingService.Error(message, ex); + LoggingService.Warn("Stack trace of last exception log:\n" + Environment.StackTrace); + message = GetMessage(message, ex); + ServiceManager.Instance.MessageService.ShowError(message); + } + + static string GetMessage(string message, Exception ex) + { + if (message == null) { + return ex.Message; + } + return message + "\r\n\r\n" + ex.Message; + } + /// /// Shows a warning message. ///