Back to all reviewers

Robust error handling

RooCodeInc/Roo-Code
Based on 4 comments
TSX

Implement comprehensive error handling to prevent crashes and aid debugging. This includes: 1. **Use try/catch blocks for risky operations** - Especially when parsing JSON or using browser APIs that might throw exceptions:

Error Handling TSX

Reviewer Prompt

Implement comprehensive error handling to prevent crashes and aid debugging. This includes:

  1. Use try/catch blocks for risky operations - Especially when parsing JSON or using browser APIs that might throw exceptions:
// Before
const data = JSON.parse(message.text || "{}");

// After
let data;
try {
  data = JSON.parse(message.text || "{}");
} catch (error) {
  console.error("Failed to parse message data:", error);
  data = {}; // Provide fallback value
}
  1. Enhance React error boundaries - Capture and log detailed error context:
class ErrorBoundary extends Component<ErrorProps, ErrorState> {
  constructor(props: ErrorProps) {
    super(props);
    this.state = {};
  }

  static getDerivedStateFromError(error: unknown) {
    return {
      error: error instanceof Error ? (error.stack ?? error.message) : `${error}`,
    };
  }
  
  // Add this method to capture additional context
  componentDidCatch(error: Error, info: React.ErrorInfo) {
    // Log to monitoring system with context
    logErrorToService({
      error,
      componentStack: info.componentStack,
      timestamp: new Date().toISOString(),
      additionalContext: this.props.contextData
    });
  }
  
  render() {
    if (this.state.error) {
      return <ErrorDisplay error={this.state.error} />;
    }
    return this.props.children;
  }
}
  1. Include helpful context - When handling errors, capture relevant details like timestamps, component stacks, or state information to make debugging easier.

This approach ensures your application degrades gracefully when errors occur while providing the information needed to fix underlying issues.

4
Comments Analyzed
TSX
Primary Language
Error Handling
Category

Source Discussions