ConnectivityManager: uses service error codes and exceptions
This patch introduces between ConnectivityManager and ConnectivityService a mechanism for propagating back to clients informative errors in the form of error codes and associated custom runtime exceptions. Without error code, the service can only throw a limited number of different exceptions over Binder. Furthermore the throw site stack traces are always loss. Although for individual instances of a throw, the error message can be inspected, aggregations of stack traces from app crashes sanitize error messages and only leaves the stack traces. This makes debugging dificult for some service calls such as requestNetwork that can have a variety of failure modes. In this patch only one failure mode is codified. More can be added later at a light cost by: 1) defining an error code, 2) defining an associated exception, 3) mapping the code to the exception. This patch can serves as a template for doing so. Test: $ runtest frameworks-net, #testNetworkRequestMaximum() detects the new exception type. Bug: 36556809, 36701874 Change-Id: I611fd7915575c9e418f7149fcdc8a879d2a3716d
Loading
Please register or sign in to comment