Program Exception Recovery via Component Replacement
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Software applications often crash due to program exceptions, leading to the termination of threads or processes, which can result in the need to restart the application or reload content, without attempting recovery from the exception.
Innovation Solution
A system and method for recovering from program exceptions by analyzing the execution history to identify failed executable entities and rendering components, determining recoverability based on recovery criteria, and replacing failed components with new ones to resume rendering electronic content.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a program exception occurs during execution, then the thread or process terminates, but the application must be restarted or content reloaded, resulting in user disruption
Solution Approach 1:
The patent segments the application into multiple independent components (rendering component, executable entity, thread) that can be individually replaced when failures occur. When a program exception is detected, only the failed rendering component is terminated and replaced, while other components continue operating, thus maintaining application stability without requiring full application restart.
Solution Approach 2:
The patent implements a recovery mechanism that detects program exceptions, identifies failed executable entities, and replaces only the failed components rather than discarding the entire application. The system recovers by launching new rendering components to replace failed ones, thereby maintaining continuous operation and reducing user disruption.
2Reliability
If a sandboxed child process is used to isolate failures, then the parent process can continue running, but a new sandboxed child process must be launched when the child fails
Solution Approach 1:
The patent further segments the sandboxed child process into isolated rendering components with dedicated memory spaces. Each rendering component operates independently within the sandboxed environment, and failures are contained to specific components rather than affecting the entire child process, reducing the frequency of new process launches.
Solution Approach 2:
The patent creates copies of rendering components within the sandboxed child process. When a rendering component fails, a new copy is launched to replace it, allowing the parent process and other child processes to continue operating without interruption.
3Reliability
If the application restarts or content reloads when an error occurs, then the application can recover from the error, but time is lost and user experience is degraded
Solution Approach 1:
The patent implements preliminary exception handling mechanisms that detect program exceptions and initiate recovery procedures immediately when errors occur. By having pre-established recovery pathways and component replacement mechanisms, the system minimizes recovery time and avoids full application restarts.
Solution Approach 2:
The patent maintains continuous application operation by replacing only the failed rendering component while keeping other components active. This selective replacement approach preserves ongoing operations and reduces the time loss associated with complete application restarts or content reloads.
Data Source
AI summary
A technology is described for recovering from a program exception. An example method may include detecting an occurrence of a program exception while rendering electronic content using an application that results in the application to stop rendering the electronic content. An execution history associated with the rendering of the electronic content may be analyzed to identify a failed executable object and a rendering component utilized by the failed executable object to render the electronic content may be identified. A determination may then be made whether the rendering of the electronic content may be recoverable by analyzing the failed executable object. A new executable object may then be constructed and may be associated with the rendering component utilized by the failed executable object as a result of a determination that the rendering of the electronic content may be recoverable, and rendering of the electronic content may be restarted.


