当前位置:首页 > React

react如何处理异常

2026-01-07 12:42:52React

错误边界(Error Boundaries)

React 16+ 引入了错误边界的概念,用于捕获子组件树中的 JavaScript 错误,并展示降级 UI。通过定义 static getDerivedStateFromError()componentDidCatch() 的类组件即可成为错误边界。

class ErrorBoundary extends React.Component {
  state = { hasError: false };

  static getDerivedStateFromError(error) {
    return { hasError: true };
  }

  componentDidCatch(error, errorInfo) {
    console.error("Caught error:", error, errorInfo);
  }

  render() {
    if (this.state.hasError) {
      return <h1>Something went wrong.</h1>;
    }
    return this.props.children;
  }
}

try/catch 处理事件和异步代码

错误边界无法捕获事件处理器或异步代码中的异常。这些场景需使用传统的 try/catch 处理。

react如何处理异常

function MyComponent() {
  const handleClick = () => {
    try {
      // 可能抛出错误的代码
    } catch (error) {
      console.error("Event handler error:", error);
    }
  };

  return <button onClick={handleClick}>Click</button>;
}

全局错误监听

通过 window.addEventListener 监听未捕获的全局错误,适用于非 React 特有的错误处理。

react如何处理异常

useEffect(() => {
  const handleGlobalError = (error) => {
    console.error("Global error:", error);
  };
  window.addEventListener("error", handleGlobalError);
  return () => window.removeEventListener("error", handleGlobalError);
}, []);

第三方错误监控服务

集成 Sentry、Rollbar 等工具可实时监控生产环境中的错误。通常需在应用入口初始化。

import * as Sentry from "@sentry/react";
Sentry.init({ dsn: "YOUR_DSN" });

function App() {
  return <ErrorBoundary fallback={<p>An error occurred</p>}>...</ErrorBoundary>;
}

开发环境严格模式

React 的 StrictMode 组件会检测潜在问题(如不安全的生命周期方法),帮助在开发阶段暴露异常。

ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById("root")
);

分享给朋友:

相关文章

react如何处理动画

react如何处理动画

处理动画的常用方法 React中处理动画可以通过多种方式实现,包括CSS动画、第三方库或React内置API。以下是几种主流方法: CSS过渡与关键帧动画 直接在组件的CSS中定义transitio…

java如何处理异常

java如何处理异常

异常处理的基本概念 Java中的异常处理通过try-catch-finally机制实现,用于捕获和处理程序运行时可能出现的错误或异常情况。异常分为检查型异常(必须处理)和非检查型异常(如运行时异常)。…

java如何处理高并发

java如何处理高并发

处理高并发的方法 使用线程池 通过线程池管理线程资源,避免频繁创建和销毁线程的开销。Java提供了ExecutorService框架,推荐使用ThreadPoolExecutor自定义线程池参数。例如…

java异常如何处理

java异常如何处理

异常处理的基本概念 Java异常分为检查型异常(Checked Exception)和非检查型异常(Unchecked Exception)。检查型异常需在编译时处理(如IOException),非检…

java 如何处理并发

java 如何处理并发

Java 并发处理的核心机制 Java 提供了多种机制来处理并发编程,确保线程安全和高效执行。以下是主要方法: 线程同步与锁机制 synchronized 关键字用于方法或代码块,确保同一时间只有一…

java 如何定义异常

java 如何定义异常

定义自定义异常 在Java中,可以通过继承 Exception 或 RuntimeException 类来创建自定义异常。自定义异常通常用于表示特定于应用程序的错误情况。 public class…