Separating Error and Propagation Data in Multi-Threaded Exception Handling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-threaded computing environments, traditional exception handling methods often result in missing or incorrect exception propagation information due to their thread-specific nature, leading to challenges in error diagnosis and bug fixing.

Innovation Solution

The use of a separate propagation information object that can collect and concatenate error information from different threads, allowing for rich error reporting and analysis, even when exceptions propagate across threads or outside the original call stack.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If traditional exception handling is used in multi-threaded environments, then exception propagation information can be captured within a single thread, but the information becomes incomplete or incorrect when exceptions propagate across threads

Engineering Contradiction:
Improveexception propagation informationVSAvoidmulti-threaded environment support
Core Design Contradiction:
Loss of informationVSAdaptability or versatility

Solution Approach 1:

The patent segments the exception handling process into two independent parts: the exception object (containing error information) and the propagation information object (containing call stack history). This segmentation allows each object to be independently managed across threads, resolving the contradiction by enabling complete information capture while maintaining thread-specific execution contexts.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a propagation information object as an intermediary that mediates between exception objects from different threads. This intermediary collects and preserves propagation information from multiple threads, ensuring that exception information is not lost when exceptions propagate across thread boundaries.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If exception propagation information is bundled with the exception object, then the exception can be handled within a single thread, but the propagation history is lost when the exception moves to different threads

Engineering Contradiction:
Improveexception handling reliabilityVSAvoidpropagation history
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The patent separates the exception object from the propagation information object, allowing the exception to be handled reliably within its original thread while the propagation information is preserved in a separate object that can be accessed across threads. This segmentation prevents the loss of propagation history when exceptions migrate between threads.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a copy of the propagation information in a separate propagation information object that persists across thread boundaries. This copy ensures that propagation history is preserved even when the original exception object is processed in a different thread context.

Inventive Principle:
Principle #26Copying

3Loss of information

If a single thread executes the entire call stack, then exception propagation information is complete, but modern multi-threaded systems cannot maintain accurate propagation records

Engineering Contradiction:
Improveexception propagation informationVSAvoidthread management complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The patent segments exception handling into thread-specific exception processing and thread-shared propagation information collection. This allows each thread to execute independently while the propagation information object serves as a shared record that accumulates complete propagation history across all threads, resolving the contradiction between multi-threaded complexity and information completeness.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The propagation information object serves multiple functions: it records propagation history for the current thread, preserves information when exceptions migrate to other threads, and provides complete propagation records for analysis. This multi-functionality enables accurate propagation tracking in complex multi-threaded environments without requiring complex thread management.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS8751872B2Separation of error information from error propagation information
Publication Date: 2014.06.10 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8751872B2 patent drawing
  • US8751872B2 patent drawing
  • US8751872B2 patent drawing

AI summary

A system and method for handling exceptions in a multi-threaded computing environment. Information, such as that relating to an error state or pertaining to the propagation history of an exception, is stored in a separate object from the exception object itself. The separate propagation information object is accessible to the plurality of threads that are used to execute a user task. The separate object allows rich diagnostic information pertaining to the exception and its propagation through multiple threads to be presented to the developer of the software.