@@ -345,25 +345,31 @@ private IUIForm LoadAssetFailureCallback(string uiFormAssetPath, string uiFormAs
345345 throw new GameFrameworkException ( "Open UI form info is invalid." ) ;
346346 }
347347
348- if ( m_UIFormsToReleaseOnLoad . Contains ( openUIFormInfo . SerialId ) )
348+ try
349349 {
350- m_UIFormsToReleaseOnLoad . Remove ( openUIFormInfo . SerialId ) ;
351- ReferencePool . Release ( openUIFormInfo ) ;
352- var uiForm = GetUIForm ( openUIFormInfo . SerialId ) ;
353- return uiForm ;
354- }
350+ if ( m_UIFormsToReleaseOnLoad . Contains ( openUIFormInfo . SerialId ) )
351+ {
352+ m_UIFormsToReleaseOnLoad . Remove ( openUIFormInfo . SerialId ) ;
353+ var uiForm = GetUIForm ( openUIFormInfo . SerialId ) ;
354+ return uiForm ;
355+ }
355356
356- m_UIFormsBeingLoaded . Remove ( openUIFormInfo . SerialId ) ;
357- string appendErrorMessage = Utility . Text . Format ( "Load UI form failure, asset name '{0}', error message '{1}'." , uiFormAssetName , errorMessage ) ;
358- if ( m_OpenUIFormFailureEventHandler != null )
357+ m_UIFormsBeingLoaded . Remove ( openUIFormInfo . SerialId ) ;
358+ string appendErrorMessage = Utility . Text . Format ( "Load UI form failure, asset name '{0}', error message '{1}'." , uiFormAssetName , errorMessage ) ;
359+ if ( m_OpenUIFormFailureEventHandler != null )
360+ {
361+ OpenUIFormFailureEventArgs openUIFormFailureEventArgs = OpenUIFormFailureEventArgs . Create ( openUIFormInfo . SerialId , uiFormAssetName , openUIFormInfo . PauseCoveredUIForm , appendErrorMessage , openUIFormInfo . UserData ) ;
362+ m_OpenUIFormFailureEventHandler ( this , openUIFormFailureEventArgs ) ;
363+ var uiForm = GetUIForm ( openUIFormInfo . SerialId ) ;
364+ return uiForm ;
365+ }
366+
367+ throw new GameFrameworkException ( appendErrorMessage ) ;
368+ }
369+ finally
359370 {
360- OpenUIFormFailureEventArgs openUIFormFailureEventArgs = OpenUIFormFailureEventArgs . Create ( openUIFormInfo . SerialId , uiFormAssetName , openUIFormInfo . PauseCoveredUIForm , appendErrorMessage , openUIFormInfo . UserData ) ;
361- m_OpenUIFormFailureEventHandler ( this , openUIFormFailureEventArgs ) ;
362- var uiForm = GetUIForm ( openUIFormInfo . SerialId ) ;
363- return uiForm ;
371+ ReferencePool . Release ( openUIFormInfo ) ;
364372 }
365-
366- throw new GameFrameworkException ( appendErrorMessage ) ;
367373 }
368374 }
369375}
0 commit comments