diff --git a/osu.Game/Screens/Play/HUD/SkinnableInfo.cs b/osu.Game/Screens/Play/HUD/SkinnableInfo.cs
index 95395f8181..1f659fd5bf 100644
--- a/osu.Game/Screens/Play/HUD/SkinnableInfo.cs
+++ b/osu.Game/Screens/Play/HUD/SkinnableInfo.cs
@@ -9,6 +9,7 @@ using Newtonsoft.Json;
using osu.Framework.Bindables;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
+using osu.Framework.Logging;
using osu.Game.Configuration;
using osu.Game.Extensions;
using osu.Game.Skinning;
@@ -84,9 +85,17 @@ namespace osu.Game.Screens.Play.HUD
/// The new instance.
public Drawable CreateInstance()
{
- Drawable d = (Drawable)Activator.CreateInstance(Type);
- d.ApplySkinnableInfo(this);
- return d;
+ try
+ {
+ Drawable d = (Drawable)Activator.CreateInstance(Type);
+ d.ApplySkinnableInfo(this);
+ return d;
+ }
+ catch (Exception e)
+ {
+ Logger.Error(e, $"Unable to create skin component {Type.Name}");
+ return Drawable.Empty();
+ }
}
}
}
diff --git a/osu.Game/Skinning/Skin.cs b/osu.Game/Skinning/Skin.cs
index 2f01bb7301..5d4afc00c4 100644
--- a/osu.Game/Skinning/Skin.cs
+++ b/osu.Game/Skinning/Skin.cs
@@ -155,16 +155,7 @@ namespace osu.Game.Skinning
var components = new List();
foreach (var i in skinnableInfo)
- {
- try
- {
- components.Add(i.CreateInstance());
- }
- catch (Exception e)
- {
- Logger.Error(e, $"Unable to create skin component {i.Type.Name}");
- }
- }
+ components.Add(i.CreateInstance());
return new SkinnableTargetComponentsContainer
{