Browse Source

Catch potential exceptions

pull/100/head
Meivyn 6 months ago
parent
commit
5d30ef0a24
No known key found for this signature in database GPG Key ID: 8BDD3E48158B2F71
2 changed files with 22 additions and 7 deletions
  1. +10
    -3
      IPA.Loader/Config/Stores/GeneratedStoreImpl/GeneratedStoreImpl.cs
  2. +12
    -4
      IPA/Program.cs

+ 10
- 3
IPA.Loader/Config/Stores/GeneratedStoreImpl/GeneratedStoreImpl.cs View File

@ -34,8 +34,8 @@ namespace IPA.Config.Stores
public static IConfigStore Create(Type type) => Create(type, null); public static IConfigStore Create(Type type) => Create(type, null);
private static readonly MethodInfo CreateGParent =
typeof(GeneratedStoreImpl).GetMethod(nameof(Create), BindingFlags.NonPublic | BindingFlags.Static, null,
private static readonly MethodInfo CreateGParent =
typeof(GeneratedStoreImpl).GetMethod(nameof(Create), BindingFlags.NonPublic | BindingFlags.Static, null,
CallingConventions.Any, new[] { typeof(IGeneratedStore) }, Array.Empty<ParameterModifier>()); CallingConventions.Any, new[] { typeof(IGeneratedStore) }, Array.Empty<ParameterModifier>());
internal static T Create<T>(IGeneratedStore? parent) where T : class => (T)Create(typeof(T), parent); internal static T Create<T>(IGeneratedStore? parent) where T : class => (T)Create(typeof(T), parent);
@ -72,7 +72,14 @@ namespace IPA.Config.Stores
internal static void DebugSaveAssembly(string file) internal static void DebugSaveAssembly(string file)
{ {
Assembly.Save(file);
try
{
Assembly.Save(file);
}
catch (Exception ex)
{
Logger.Config.Error(ex);
}
} }
private static ModuleBuilder? module; private static ModuleBuilder? module;


+ 12
- 4
IPA/Program.cs View File

@ -72,7 +72,7 @@ namespace IPA
} }
PatchContext? context = null; PatchContext? context = null;
Assembly? AssemblyLibLoader(object? source, ResolveEventArgs e) Assembly? AssemblyLibLoader(object? source, ResolveEventArgs e)
{ {
// ReSharper disable AccessToModifiedClosure // ReSharper disable AccessToModifiedClosure
@ -329,8 +329,16 @@ namespace IPA
Debug.Assert(targetFile.Directory != null, "targetFile.Directory != null"); Debug.Assert(targetFile.Directory != null, "targetFile.Directory != null");
targetFile.Directory?.Create(); targetFile.Directory?.Create();
LineBack();
ClearLine();
try
{
LineBack();
ClearLine();
}
catch (Exception ex)
{
// Might throw IOException due to an invalid handle when accessing IsConsole from a MSBuild task.
}
Console.WriteLine(@"Copying {0}", targetFile.FullName); Console.WriteLine(@"Copying {0}", targetFile.FullName);
backup.Add(targetFile); backup.Add(targetFile);
_ = fi.CopyTo(targetFile.FullName, true); _ = fi.CopyTo(targetFile.FullName, true);
@ -366,7 +374,7 @@ namespace IPA
/// Encodes an argument for passing into a program /// Encodes an argument for passing into a program
/// </summary> /// </summary>
/// <param name="original">The value_ that should be received by the program</param> /// <param name="original">The value_ that should be received by the program</param>
/// <returns>The value_ which needs to be passed to the program for the original value_
/// <returns>The value_ which needs to be passed to the program for the original value_
/// to come through</returns> /// to come through</returns>
public static string EncodeParameterArgument(string original) public static string EncodeParameterArgument(string original)
{ {


Loading…
Cancel
Save