完善一些高危风险的代码容错机制。

This commit is contained in:
何冠峰
2025-12-04 20:34:29 +08:00
parent 4b6a8ca406
commit 33356cb270
2 changed files with 32 additions and 9 deletions
@@ -269,6 +269,7 @@ namespace YooAsset
if (_resManager.UseWeakReferenceHandle)
{
// TODO 高危风险:如果移除弱引用失败,会导致资源永远无法释放。
if (RemoveWeakReference(handle) == false)
throw new System.Exception("Should never get here !");
}
@@ -335,11 +336,18 @@ namespace YooAsset
List<WeakReference<HandleBase>> tempers = _weakReferences.ToList();
foreach (var weakRef in tempers)
{
if (weakRef.TryGetTarget(out HandleBase target))
if (weakRef.TryGetTarget(out HandleBase handle))
{
if (target.IsValid)
if (handle.IsValid)
{
target.InvokeCallback();
try
{
handle.InvokeCallback();
}
catch (Exception ex)
{
YooLogger.Error($"Exception in completion callback: {ex}");
}
}
}
}
@@ -351,7 +359,14 @@ namespace YooAsset
{
if (handle.IsValid)
{
handle.InvokeCallback();
try
{
handle.InvokeCallback();
}
catch (Exception ex)
{
YooLogger.Error($"Exception in completion callback: {ex}");
}
}
}
}