public static void Load()
 {
     if (string.IsNullOrEmpty(_path))
     {
         _logger.Trace("empty or null path");
         _settings = new UserSettings();
     }
     else
     {
         try
         {
             using (var stream = File.OpenRead(_path))
             {
                 _logger.Trace("opened file");
                 _settings = SerializationExtensions.LoadJson <UserSettings>(stream);
                 _logger.Trace("deserialized file ok");
             }
         }
         catch (Exception e)
         {
             _logger.TraceException("exception", e);
             if (e is InvalidCastException ||
                 e is FileNotFoundException ||
                 e is SerializationException
                 )
             {
                 _settings = new UserSettings();
             }
             else
             {
                 throw;
             }
         }
     }
 }