• Ian Hickson's avatar
    Rationalise all our exception handling. · ee703da9
    Ian Hickson authored
    - Create a FlutterErrorDetails struct-like class that describes an
    
      exception along with more details that aren't in the exception, like
    
      where it was caught and what was going on when it was caught.
    
    
    
    - Provide a FlutterError static API for handling these objects:
    
    
    
      - FlutterError.onError which is called whenever Flutter catches an
    
        error.
    
    
    
      - FlutterError.reportError() which handles an error.
    
    
    
      - FlutterError.dumpErrorToConsole() which is the default behavior
    
        for onError.
    
    
    
    - Removes all the existing exception handler callbacks.
    
    
    
    - Replaces all the existing places that described exceptions using
    
      debugPrint with calls to FlutterError.reportError().
    
    
    
    - Extend lockState() to also catch exceptions, so that we catch
    
      exceptions that happen during finalizers.
    
    
    
    - Make the test framework catch errors and treat them as failures.
    
    
    
    - Provide a mechanism to override this behavior in the test framework.
    
    
    
    - Make the tests that used to depend on the exception handler
    
      callbacks use this new mechanism.
    
    
    
    - Make pump() also support the phase argument.
    
    
    
    - Improve some tests using these new features.
    
    
    
    Fixes #2356, #2988, #2985, #2220.
    ee703da9
mixed_viewport.dart 25.3 KB