IP Library Granted Patent US 9,697,071
Granted Patent B2
US 9,697,071 · App. 14/805,087 · Granted Jul 4, 2017

Exception wrapping system

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,697,071
App. No.
14/805,087
Granted
Jul 4, 2017
Kind
B2
Abstract

The described technology is directed towards handling errors in an application program that allows for a taxonomy and precedence order of errors. Exception wrapping includes preserving relevant information with an exception, and consolidates a series of errors into a single dominant exception instance that is handled appropriately depending on the exception type. Also described is a centralized exception manager that outputs an interactive dialog based upon the exception type, and takes a recovery action based upon user interaction with the dialog.

Claims (43)

1. A system comprising:

wrapping code coupled to an error handler of a routine, in which the routine produces an error and the wrapping code wraps the error with relevant information to provide a wrapped exception instance, including to use an exception type hierarchy to preserve information in the wrapped exception instance including an exception type; and

an exception manager that receives the wrapped exception instance and determines one or more actions to take based upon the exception type of the wrapped exception instance, wherein the exception manager takes the one or more actions, including to present an interactive dialog associated with the exception type, and wherein the dialog includes an interactive input mechanism, which when selected, results in the exception manager taking further action to restart a program that contains the routine.

2. The system of claim 1 in which the wrapped exception type is derived from a higher-level exception type in the exception type hierarchy.

3. The system of claim 1 wherein the exception manager accesses an exception type table that associates exception types with dialogs to select the interactive dialog for the exception type.

4. The system of claim 1 wherein the interactive input mechanism, when selected, is further interactive to allow the exception manager to take further action to navigate to a location in a program that contains the routine, in which the location is determined based upon information in the wrapped exception type.

5. The system of claim 1 wherein the interactive input mechanism, when selected, is further interactive to allow the exception manager to take further action to navigate back to a prior location, or retry an operation that caused the error.

6. The system of claim 1 further comprising a logging mechanism that logs data corresponding to the wrapped exception instance.

7. The system of claim 1 in which the wrapping code is configured to determine if the error corresponds to a native error, and if so, to create a new exception instance and preserve at least some available data associated with the native error, if any, in the new exception instance.

8. The system of claim 1 in which the wrapping code is called with a calling exception type, and wherein the wrapping code determines if the calling exception type is an ancestor type of a passed exception instance type, and if so, to preserve the passed exception instance as the wrapped exception instance, and if not, to create a new exception instance corresponding to the calling exception type.

9. The system of claim 8 in which the wrapping code creates a new exception instance type, and wherein the wrapping code is further configured to preserve at least some data of the passed exception instance type in the new exception instance type.

10. A method comprising:

receiving a call related to a program error, in which the call is associated with a passed native error instance or the call is associated with a passed exception instance and a calling exception type;

determining if the call corresponds to a passed exception instance, and if not, creating a new exception instance of the calling exception type to represent the program exception and preserving information corresponding to any data of the passed native error instance in the new exception instance; or

determining if the call corresponds to a passed exception instance, and if so, determining if the calling exception type is an ancestor type of the passed exception instance type,

a) if not, creating a new instance of the calling exception type to represent the program exception, or

b) if so, preserving the passed exception instance to represent the program exception;

receiving the exception instance at an exception manager;

outputting a dialog based upon the received exception instance type, and

taking a recovery action based upon the received exception instance type.

11. The method of claim 10 wherein the calling exception type is not an ancestor type of the passed exception instance type, and further comprising, preserving information corresponding to data of the passed exception instance in the new exception instance.

12. The method of claim 11 wherein preserving the information comprises maintaining the passed exception instance or at least some of the data of the passed exception instance as at least one property of the new exception instance.

13. The method of claim 10 wherein the calling exception type is an ancestor type of the passed exception instance type, and further comprising, preserving information corresponding to data of the passed exception instance in the wrapped exception instance that gets returned.

14. The method of claim 10 further comprising, logging data corresponding to the wrapped exception instance.

15. One or more machine-readable storage media having machine-executable instructions, which when executed perform steps, comprising:

determining a wrapped exception type based upon a hierarchy, including using a wrapped exception type that applies to an error thrown while executing a program;

routing the wrapped exception instance to an exception manager;

determining a dialog and associated with the wrapped exception instance type;

outputting the dialog; and

taking action based upon user interaction with the dialog, including at least one of: restarting the program, navigating to a location in the program, navigating back to a prior location, or retrying an operation that caused the error.

16. The one or more machine-readable storage media of claim 15 wherein determining the exception instance type comprises determining if a calling exception type is an ancestor type of a passed exception instance type, and if so, preserving the passed exception instance as the wrapped exception instance, and if not, creating a new exception instance corresponding to the calling exception type.

17. A system comprising:

wrapping code coupled to an error handler of a routine, in which the routine produces an error and the wrapping code wraps the error with relevant information to provide a wrapped exception instance, including to use an exception type hierarchy to preserve information in the wrapped exception instance including an exception type; and

an exception manager that receives the wrapped exception instance and determines one or more actions to take based upon the exception type of the wrapped exception instance, wherein the exception manager takes the one or more actions, including to present an interactive dialog associated with the exception type and wherein the dialog includes an interactive input mechanism, which when selected, results in the exception manager taking further action to navigate back to a prior location, or retry an operation that caused the error.

18. The system of claim 17 in which the wrapped exception type is derived from a higher-level exception type in the exception type hierarchy.

19. The system of claim 17 wherein the exception manager accesses an exception type table that associates exception types with dialogs to select the interactive dialog for the exception type.

20. The system of claim 17 wherein the interactive input mechanism, when selected, is further interactive to allow the exception manager to take further action to restart a program that contains the routine.

21. The system of claim 17 wherein the interactive input mechanism, when selected, is further interactive to allow the exception manager to take further action to navigate to a location in a program that contains the routine, in which the location is determined based upon information in the wrapped exception type.

22. The system of claim 17 wherein the interactive input mechanism, when selected, is further interactive to allow the exception manager to take further action to navigate back to a prior location, or retry an operation that caused the error.

23. The system of claim 17 further comprising a logging mechanism that logs data corresponding to the wrapped exception instance.

24. The system of claim 17 wherein the wrapping code is configured to determine if the error corresponds to a native error, and if so, to create a new exception instance and preserve at least some available data associated with the native error, if any, in the new exception instance.

25. The system of claim 17 wherein the wrapping code is called with a calling exception type, and wherein the wrapping code determines if the calling exception type is an ancestor type of a passed exception instance type, and if so, to preserve the passed exception instance as the wrapped exception instance, and if not, to create a new exception instance corresponding to the calling exception type.

26. The system of claim 25 wherein the wrapping code creates a new exception instance type, and wherein the wrapping code is further configured to preserve at least some data of the passed exception instance type in the new exception instance type.

Assignments (2)
SECURITY INTEREST Recorded Oct 1, 2025
From: WARNER BROS. DISCOVERY, INC.; WARNER MEDIA, LLC; TURNER BROADCASTING SYSTEM, INC.; HOME BOX OFFICE, INC.; DISCOVERY COMMUNICATIONS, LLC; WARNERMEDIA DIRECT LLC; DISCOVERY.COM LLC; WARNER BROS. ENTERTAINMENT INC.; CNN INTERACTIVE GROUP, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 072995/0858 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 21, 2015
From: FINNIGAN, PATRICK; CLARK, BRENDAN JOSEPH; FURTWANGLER, BRANDON C.; FURTWANGLER, STEVEN N.
To: HOME BOX OFFICE, INC.
Reel/Frame 036145/0804 →