아마도 네트워크, 브라우저 문제, 캐시 등으로 인해 js의 온라인 실행이 개발 환경과 다를 수 있으며 예외가 발생할 수 있습니다. Node.js 예외는 기본적으로 프런트엔드 개발 엔지니어의 일상입니다. 어떻게 기록하고 활용하는지에 대해 관심을 갖는 사람은 거의 없습니다. 저는 최근에 기본적으로 수집과 사용이라는 두 단계를 포함하는 아이디어에 대해 생각해 왔습니다.
1. 수집
오류 수집의 경우 각 브라우저에 window.onerror라는 인터페이스가 있으므로 매우 편리합니다. 코드는 다음과 같습니다.
window.onerror = function(errorMessage, scriptURL, lineNumber) {
alert(errorMessage, scriptURL, lineNumber)
}
try/catch에서 e.stack과 같은 Stack Trace도 제공합니다(브라우저마다 다르므로 eriwen /javascript 사용 가능) -stacktrace 호환 라이브러리), 다음 코드를 사용해 보세요.
try {
fn()
} catch(e) {
alert(e.stack)
}
그래서 이것들을 수집하는 것이 더 편리합니다. 오류 예, 여기서 주의할 점은 window.addEventListener('error', callback, isBubble) 사용 시 콜백의 첫 번째 매개변수가 이벤트가 아니라 Error 객체라는 것입니다. 이 경우 편의상 window.onerror를 사용하는 것이 좋은 선택이지만 도트 연산자를 통해 모니터링되는 이벤트가 오버로드될 수 있으며 이 리스닝 스크립트는 이론적으로 모든 js의 앞에 배치되므로 위험을 고려해야 합니다.
2. 사용
이전에 Alipay를 사용할 때 온라인 js 오류 보고서가 이메일로 바뀌어 프론트엔드 개발팀에 전송되고 모두가 주장하고 해결했습니다. 그 자체. 실제로 이것은 좋은 선택이며 가장 기본적인 문제인 즉각적으로 대응하고 수리하는 문제도 해결합니다. 하지만 문제도 있습니다. 어떻게 같은 실수를 피할 수 있을까요? 내 초기 아이디어는 다음과 같습니다. URL을 하나의 단위로 사용하여 동일한 페이지에 오류를 기록합니다. 페이지 URL, 사용자 에이전트, 스크립트 URL, 오류 메시지 및 줄 번호를 포함하여 기록된 오류의 통합 해결을 용이하게 합니다. , 솔루션을 한곳에 작성할 수 있고, 이를 보는 사람들이 댓글을 달고 포인트를 추가할 수 있으며, 이는 결국 지식 베이스로 보관되며, 이러한 지식 베이스의 콘텐츠를 개발 중 및 개발 시 편리한 API를 통해 활용할 수 있습니다. 동일한 페이지 window.onerror가 발생합니다. 플러그인을 통해 오류 메시지를 분석하여 유형을 식별하고, URL을 판단하여 이전 개발자가 저지른 실수를 개발자는 지식 베이스에서 특정 태그를 구독할 수 있습니다. 자동으로 이메일을 수신합니다. (물론 더 나은 페어링을 위해 파일 주석, 매핑 등을 기반으로 할 수도 있습니다.) 왜 이렇게 합니까? 주로 다음과 같은 문제를 해결합니다. 개발자가 배울 수 있는 지식 기반을 형성합니다. 특히 효율성 향상을 보장하고 반복적인 오류와 반복적인 솔루션을 방지하기 위한 구독 보장 알림이 더욱 타겟팅됩니다.
3. 참고
1. 수집 시 POST를 사용하여 전송합니다. 때로는 오류 메시지가 길어질 수 있으며, 저장된 오류가 많지 않은 경우 GET을 사용하는 것도 고려해 볼 수 있습니다. 일반적으로 POST는 모든 데이터를 백그라운드로 보낼 수 있습니다. 2. 언제 데이터를 보낼 것인가? onerror가 발생했을 때 데이터를 보내는 것이 좋습니다. 처음 이 아이디어가 떠올랐을 때 onbeforeonload 중에 보내려고 했는데 POST 요청이 열리기 전에 브라우저에 의해 중단되었습니다. 3. 데이터베이스에 저장하는 것이 더 좋은 인덱스는 무엇입니까? 일반적으로 URL은 대부분의 웹사이트에 더 적합할 수 있습니다. 그러나 Baixing.com, Taobao 등 UGC가 많은 웹사이트는 URL을 기록하기 위해 수정해야 할 수도 있습니다. 결국, 다른 게시물과 다른 URL은 모두 동일한 코드 세트를 갖습니다. Error를 인덱스로 사용하는 것은 어떻습니까? 사실, 어떤 종류이든 자신의 필요에 따라 선택하세요. 4. 모든 오류를 기록할지 여부도 필요에 따라 더 적절합니다. Baidu.com에는 Baidu/Google에 대한 외부 광고 링크에서 발생할 수 있는 온갖 종류의 지저분한 오류 보고서가 있습니다.
4. 결론
현재 수집 도구(sofish/stacktrace.js)와 저장 방법이 초기에 구현되어 있으므로 계속할지 여부는 시간과 추가 고려가 필요합니다. 먼저 보내드리고, 벽돌을 던져서 옥을 유인하겠습니다.

PHP中API如何处理异常处理和重试机制在PHP中,API已经成为许多网站和应用程序的核心,因为它们提供各种功能和功能。然而,在使用API时,我们经常会遇到许多问题,如网络连接问题,响应超时,无效请求等。在这种情况下,我们需要了解如何处理异常和重试机制来确保我们的应用程序的可靠性和稳定性。异常处理在PHP中,异常处理是一种更加优雅和可读的错误处

随着互联网技术的不断发展,越来越多的企业开始使用Go语言进行开发。Go语言以其高效、稳定、易用的特点备受开发者的青睐。在企业级开发中,框架是不可或缺的一部分。因此,本文将介绍在Go语言框架开发中,如何进行异常处理与错误码设计。一、什么是异常处理在计算机编程中,异常处理指的是当程序运行过程中出现异常情况时,程序必须采取的措施。这些异常情况包括硬件故障、软件缺陷

PHP是一种流行而强大的服务器端编程语言,可以用来开发各种Web应用程序。就像其他编程语言一样,PHP也有可能会出现错误和异常。这些错误和异常可能由各种原因引起,如程序错误、服务器错误、用户输入错误等等。为了确保程序的运行稳定性和可靠性,PHP提供了一套完整的错误处理机制。PHP错误处理机制的基本思想是:当发生错误时,程序会停止执行并输出一条错误消息。我们可

随着Web开发技术的不断发展,开发人员也面临着越来越复杂的业务场景和需求。例如,高并发、大量请求处理、异步任务处理等问题都需要使用高性能的工具和技术来解决。在这种情况下,Swoole成为了一种越来越重要的解决方案。Swoole是一种基于PHP语言的高性能异步网络通信框架。它提供了一些非常有用的功能和特性,例如异步IO、协程、进程管理、定时器和异步客户端,使得

ThinkPHP6是一款非常流行的PHP框架,已经被广泛应用于各种Web应用程序中。在开发过程中,可能会遇到各种异常,如果不及时处理,就会导致程序无法正常运行。本文将介绍如何在ThinkPHP6中进行异常处理,保证Web应用程序的稳定性和可靠性。异常处理的概念异常处理是指在程序正常执行过程中,遇到错误或意外情况时所进行的处理。在开发Web应用程序时,常常会发

随着互联网的不断发展,越来越多的企业和组织开始规划数据库集群来满足其数据处理需求。数据库集群可能包含数百甚至数千个节点,因此在节点之间确保数据同步和协调非常重要。在该环境下,存在着很多的异常情况,如单节点故障,网络分区,数据同步错误等,并且需要实现实时检测和处理。本文将介绍如何使用PHP实现数据库集群异常处理。数据库集群的概述在数据库集群中,一个单独的

Java是一种面向对象的程序设计语言,由于其很高的稳定性和安全性,成为了一种广泛应用的编程语言。然而,在程序开发过程中,异常总是不可避免的问题。由于Java语言天生具有处理异常的功能,因此它可以通过异常处理机制来避免程序崩溃,保证程序的正常运行。一、Java中的异常概述在Java中,异常是指程序发生了不正常的情况,如数组越界、除数为零、文件未找到等等。但是这

Yii框架是一款广泛应用于Web应用程序开发的高性能PHP框架。在Yii的应用程序中,错误页面和异常处理模块是非常重要的功能之一。本文将简要介绍Yii框架中的错误页面和异常处理模块,并提供一些实用的示例代码,以帮助您更好地理解和使用这些功能。一、错误页面当用户访问一个不存在的页面、发生了错误的连接或者其他错误时,Yii框架会默认显示一个错误页面。这个页面通常


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

드림위버 CS6
시각적 웹 개발 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경
