blob: c5d155f4cc92f06c1e61cfb753e583f410563a3d [file] [log] [blame] [view]
# performCtrlWithExceptionHandling function
void performCtrlWithExceptionHandling
(String name, dynamic ctrl, String type, void additionalErrorListener(Object error, StackTrace stackTrace), void work())
<p>Wraps work with common try/catch behaviour and timeline events.</p>
## Implementation
```dart
void performCtrlWithExceptionHandling(
String name,
dynamic ctrl,
String type,
void Function(Object error, StackTrace? stackTrace) additionalErrorListener,
void Function() work) {
try {
Timeline.startSync(name);
work();
} catch (_e, _st) {
ctrl.proxyError(FidlError('Exception handling $type $name: $_e'));
additionalErrorListener(_e, _st);
rethrow;
} finally {
Timeline.finishSync();
}
}
```