@@ -198,38 +198,48 @@ def _check_types(arg):
198
198
return ""
199
199
200
200
201
+ def raise_exception (e ):
202
+ if not settings .enable_error_handler :
203
+ if settings .release_on_exception :
204
+ from pyaedt .generic .desktop_sessions import _desktop_sessions
205
+
206
+ for v in list (_desktop_sessions .values ())[:]:
207
+ v .release_desktop (v .launched_by_pyaedt , v .launched_by_pyaedt )
208
+ raise e
209
+ else :
210
+ return False
211
+
212
+
201
213
def _function_handler_wrapper (user_function , ** deprecated_kwargs ):
214
+
202
215
def wrapper (* args , ** kwargs ):
216
+
203
217
if deprecated_kwargs and kwargs :
204
218
deprecate_kwargs (user_function .__name__ , kwargs , deprecated_kwargs )
205
- if not settings .enable_error_handler :
206
- result = user_function (* args , ** kwargs )
207
- return result
208
- else :
209
- try :
210
- settings .time_tick = time .time ()
211
- out = user_function (* args , ** kwargs )
212
- if settings .enable_debug_logger or settings .enable_debug_edb_logger :
213
- _log_method (user_function , args , kwargs )
214
- return out
215
- except MethodNotSupportedError :
216
- message = "This method is not supported in current AEDT design type."
217
- if settings .enable_screen_logs :
218
- pyaedt_logger .error ("**************************************************************" )
219
- pyaedt_logger .error (
220
- "PyAEDT error on method {}: {}. Check again" .format (user_function .__name__ , message )
221
- )
222
- pyaedt_logger .error ("**************************************************************" )
223
- pyaedt_logger .error ("" )
224
- if settings .enable_file_logs :
225
- settings .error (message )
226
- return False
227
- except GrpcApiError :
228
- _exception (sys .exc_info (), user_function , args , kwargs , "AEDT grpc API call Error" )
229
- return False
230
- except BaseException :
231
- _exception (sys .exc_info (), user_function , args , kwargs , str (sys .exc_info ()[1 ]).capitalize ())
232
- return False
219
+ try :
220
+ settings .time_tick = time .time ()
221
+ out = user_function (* args , ** kwargs )
222
+ if settings .enable_debug_logger or settings .enable_debug_edb_logger :
223
+ _log_method (user_function , args , kwargs )
224
+ return out
225
+ except MethodNotSupportedError as e :
226
+ message = "This method is not supported in current AEDT design type."
227
+ if settings .enable_screen_logs :
228
+ pyaedt_logger .error ("**************************************************************" )
229
+ pyaedt_logger .error (
230
+ "PyAEDT error on method {}: {}. Check again" .format (user_function .__name__ , message )
231
+ )
232
+ pyaedt_logger .error ("**************************************************************" )
233
+ pyaedt_logger .error ("" )
234
+ if settings .enable_file_logs :
235
+ settings .error (message )
236
+ raise_exception (e )
237
+ except GrpcApiError as e :
238
+ _exception (sys .exc_info (), user_function , args , kwargs , "AEDT grpc API call Error" )
239
+ raise_exception (e )
240
+ except BaseException as e :
241
+ _exception (sys .exc_info (), user_function , args , kwargs , str (sys .exc_info ()[1 ]).capitalize ())
242
+ raise_exception (e )
233
243
234
244
return wrapper
235
245
0 commit comments