рд╕рд╛рдордиреЗ рдХреЗ рдЫреЛрд░ рдкрд░ рдХреАрдбрд╝реЗ рдХреА рдЦреЛрдЬ рдХреИрд╕реЗ рдХрд░реЗрдВ: 4 рдореБрдЦреНрдп рдЪрд░рдг


рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рд╕реАрдорд╛рдВрдд (рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдпрд╛ рд╡реЗрдм-рд╡реНрдпреВ) рдкрд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рдореБрджреНрджреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдВрдЧрд╛ред

рдлреНрд░рдВрдЯрдПрдВрдб рдкрд░, рдЬреЗрдПрд╕ рдХреЛрдб рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рд╕рдВрдХрд▓рд┐рдд рднрд╛рд╖рд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕реАрдзреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╣рдореЗрд╢рд╛ рдПрдХ рдкреНрд░рджрд░реНрд╢рди рддреНрд░реБрдЯрд┐ рдХрд╛ рдореМрдХрд╛ рд╣реЛрддрд╛ рд╣реИред рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рддреНрд░реБрдЯрд┐ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕реНрдерд╛рди рдХреЗ рдмрд╛рдж рд╕реНрдерд┐рдд рдХреЛрдб рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рддреА рд╣реИ, рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рдЧреИрд░-рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдХреНрд░реАрди рдХреЗ рд╕рд╛рде рд╢реЗрд╖ рд░рд╣рдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдЬреЛ рдХреЗрд╡рд▓ рдкреБрдирдГ рд▓реЛрдб рдпрд╛ рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рдЙрдирдХреА рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдВрдЧрдд рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВред

1. рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрдкрдХрд░рдг


рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ / рдмреНрд▓реЙрдХ рдкрдХрдбрд╝реЗрдВ


рдРрд╕реЗ рдХрд╛рд░реНрдп рдЬреЛ рд╡рд┐рдлрд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдХреЛрд╢рд┐рд╢ / рдХреИрдЪ рдмреНрд▓реЙрдХ рдореЗрдВ рд▓рдкреЗрдЯрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрд╢рд┐рд╢ рдмреНрд▓реЙрдХ рдореЗрдВ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреИрдЪ рдмреНрд▓реЙрдХ рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рддреАрди рдкреИрд░рд╛рдореАрдЯрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ:

  • рдирд╛рдо - рддреНрд░реБрдЯрд┐ рдХрд╛ рдорд╛рдирдХреАрдХреГрдд рдирд╛рдо;
  • рд╕рдВрджреЗрд╢ - рддреНрд░реБрдЯрд┐ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрджреЗрд╢;
  • рд╕реНрдЯреИрдХ - рд╡рд░реНрддрдорд╛рди рдХреЙрд▓ рд╕реНрдЯреИрдХ рдЬрд┐рд╕рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╣реБрдИред

рдЕрд░реНрдерд╛рдд:

try {

   callFunc();

} catch (e) {

   console.log(e.name) // ReferenceError

   console.log(e.message) // callFunc is not defined

   console.log(e.stack) // ReferenceError: callFunc is not defined at window.onload

}

рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП, рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдХреИрдЪ рдмреНрд▓реЙрдХ рдХреЗ рдмрд╛рдж рдкреНрд░реЛрдЧреНрд░рд╛рдо рдирд┐рд╖реНрдкрд╛рджрди рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдмрд╛рдзрд┐рдд рдирд╣реАрдВ рд╣реЛрдЧреАред

рдХреЛрд╢рд┐рд╢ / рдХреИрдЪ рдмреНрд▓реЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рднреА рдХрд╛рд░рдг рдмрди рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╕рдордп:

const user = {

  name : ┬лMike┬╗

};

try {

   if (!user.age) throw new SyntaxError(┬лUser age is absent!┬╗);

} catch (e) {

   console.log(e.name) // SyntaxError

   console.log(e.message) // User age is absent!

   console.log(e.stack) // SyntaxError: User age is absent! at window.onload

}

рдЕрдВрдд рдореЗрдВ, рдЖрдк рдЗрд╕ рдХрдерди рдХреЛ рдПрдХ рдФрд░ рдмреНрд▓реЙрдХ рдХреЗ рд╕рд╛рде рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ - рдЖрдЦрд┐рд░рдХрд╛рд░, рдЬрд┐рд╕реЗ рд╣рдореЗрд╢рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рджреЛрдиреЛрдВ рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрд╣рд╛рдВ рдкреНрд░рдпрд╛рд╕ рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдереА, рдФрд░ рдорд╛рдорд▓реЗ рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдг рдкрдХрдбрд╝ рдмреНрд▓реЙрдХ рдореЗрдВ рдкрд╛рд░рд┐рдд рд╣реЛ рдЧрдпрд╛:

try {

   callFunc();

} catch (e) {

   console.log(e)

} finally {

   ...

}

рдХрднреА-рдХрднреА рд╡реЗ рдХреЛрд╢рд┐рд╢ / рдЕрдВрдд рдореЗрдВ рдмрдпрд╛рди (рдмрд┐рдирд╛ рдкрдХрдбрд╝) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдк рд╡рд┐рд╢рд┐рд╖реНрдЯ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рдмрд┐рдирд╛ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХреЗрдВред

Window.onerror рдШрдЯрдирд╛


рдпрд╣ рдЬрд╛рдирдирд╛ рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдкреГрд╖реНрда рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреВрдЯ рдЧрдИ рд╣реИ, рднрд▓реЗ рд╣реА рдХрд╛рд░реНрдпрдХреНрд░рдо рдЯреВрдЯ рдЧрдпрд╛ рд╣реЛ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рддреНрд░ рдЕрд╕рдлрд▓ рд╣реЛ рдЧрдпрд╛ рд╣реЛред рдЖрдорддреМрд░ рдкрд░ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рддрдм рддреНрд░реБрдЯрд┐ рд▓реЙрдЧрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИред

рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд┐рдВрдбреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдСрдирд░реЛрд░ рдШрдЯрдирд╛ рд╣реИ ( рдЗрд╕реЗ рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рднрд┐рдиреНрди рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ! )ред

window.onerror = function(message, url, line, col, error) {

   console.log(`${message}\n  ${line}:${col}  ${url}`);

};

рдпрджрд┐ рдЖрдк рдЗрд╕ рдХреЛрдб рдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ рдпрд╛ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рдЕрд▓рдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдиреАрдЪреЗ рдХрд┐рд╕реА рднреА рддреНрд░реБрдЯрд┐ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧреАред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдкреВрд░реА рдЬрд╛рдирдХрд╛рд░реА рдХреЗрд╡рд▓ рдЙрдиреНрд╣реАрдВ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЙрд╕реА рдбреЛрдореЗрди рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдЯреВрдЯреА рд╣реБрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдбреЛрдореЗрди рд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ window.onerror рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рддреНрд░реБрдЯрд┐ рдХрд╛ рдХреЛрдИ рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдлреНрд░реЗрдорд╡рд░реНрдХ рдШрдЯрдХ


рдХреБрдЫ JS рдЪреМрдЦрдЯреЗ ( React , Vue) рдЕрдкрдиреА рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдмреНрд▓реЙрдХ рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд▓реЗрдЖрдЙрдЯ рдЦреАрдВрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧреА рдЬрд┐рд╕рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╣реБрдИ:

class ErrorBoundary extends React.Component {

   constructor(props) {

       super(props);

       this.state = { hasError: false };

   }

   static getDerivedStateFromError(error) {

       //    ,      UI.

       return { hasError: true };

   }

   componentDidCatch(error, errorInfo) {

       //           

       logErrorToMyService(error, errorInfo);

   }

   render() {

       if (this.state.hasError) {

           //    UI  

           return <h1>-   .</h1>;

       }

       return this.props.children;

   }

}

<ErrorBoundary>

   <MyWidget />

</ErrorBoundary>

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдШрдЯрдХ рдореЗрдВ рд▓рдкреЗрдЯрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдХреЛрд╢рд┐рд╢ / рдкрдХрдбрд╝ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рд╛рде рд░реИрдкрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рдорд╛рди рд╣реИред

2. рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЕрд╕реЗрдВрдмрд▓реА рдЯреВрд▓реНрд╕


рдЖрдзреБрдирд┐рдХ рдЬреЗрдПрд╕ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рдЖрдорддреМрд░ рдкрд░ рдЯреНрд░рд╛рдВрд╕рдкреЛрдВрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдирд╡реАрдирддрдо ES рдорд╛рдирдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдлрд┐рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдбрд░ (рдЬреИрд╕реЗ рд╡реЗрдмрдкреИрдХ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрд╡рд▓рдкрд░ рдХрд╛ рдХреЛрдб рдЙрд╕ рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЪрдпрдирд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рджреА рдЬрд╛рдПрдЧреАред

рдмрд┐рд▓реНрдб рд╕реНрдЯреЗрдЬ рдкрд░, рд╕рд╣реА рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИред рдПрдХ рдЦреБрд▓реЗ рдХреЛрд╖реНрдардХ рдпрд╛ рдПрдХ рд╡рд░реНрдЧ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдПрдХ рдЧрд▓рдд рдкрджрдирд╛рдо рддреБрд░рдВрдд рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рджреМрд░рд╛рди рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛, рдФрд░ рдмрдВрдбрд▓ рдХреЛ рдмрд╕ рдЗрдХрдЯреНрдард╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдХрд╛рдо рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдРрд╕реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рддреБрд░рдВрдд рдареАрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрд▓реЗрдХреНрдЯрд░ рдпрд╣ рд╕реБрдЭрд╛рд╡ рджреЗ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп рдХреБрдЫ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдХреЛрдб рдХреЗ рдЧрд╣рди рдЕрдзреНрдпрдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд░реЗрдЧрд╛, рдЬреЛ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рдирдИ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред

3. рдкрд░реАрдХреНрд╖рдг


рдХреЛрдб рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХрд╛ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рд╣реИред рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдкреНрд░рднрд╛рд╡реА рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдлреНрд░рдВрдЯреЗрдВрдб рдореЗрдВ рдЙрдкрдХрд░рдг рд╣реИрдВред рдЖрдорддреМрд░ рдкрд░, рдЬреЗрд╕реНрдЯ, рдХрд░реНрдорд╛, рдореЛрдЪрд╛, рдЬреИрд╕реНрдореАрди рдЬреИрд╕реЗ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд░реАрдХреНрд╖рдг рдврд╛рдВрдЪреЗ рдХреЗ рд╕рд╛рде, рд╡реЗ рдЕрдХреНрд╕рд░ рдПрдВрдЬрд╛рдЗрдо, рд░рд┐рдПрдХреНрдЯ рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА, рд╕рд┐рдиреЛрди рдФрд░ рдЕрдиреНрдп рдЬреИрд╕реЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдореЙрдХрд┐рдВрдЧ, рдЬрд╛рд╕реВрд╕ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдЕрдиреНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдорджрдж рд╕реЗ рд╕рдореГрджреНрдз рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред

рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рддреЗ рд╕рдордп, рдкрд░реАрдХреНрд╖рдг рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдирд┐рд╖реНрдкрд╛рджрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЬрдиреНрдо рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рддреЛ, рдирд┐рдореНрди рдХреЛрдб рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕рддреНрдпрд╛рдкрди рдкрд╛рд░рд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛:

const func = (data) => {

   return JSON.parse(data)

}

func('{┬лa┬╗:1}')

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЧрд▓рдд рдорд╛рди рджреЗрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛:

func() // Uncaught SyntaxError: Unexpected token u in JSON at position 0.


рдпрд╣ рдХреЛрдб рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рджреМрд░рд╛рди рд╕рддреНрдпрд╛рдкрди рднреА рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ:

const obj = {

   outer : {

       last : 9

   }

}

if (obj.outer.inner.last) {

   console.log(┬лSUCCESS┬╗)

}

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рднреА рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛ред рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рдж, рдбреЗрд╡рд▓рдкрд░ рд╕рдВрднрд╡рддрдГ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛:

if (obj.outer?.inner?.last) {

   console.log(┬лSUCCESS┬╗)

}

рдЕрдХреНрд╕рд░, рд╕рд░реНрд╡рд░ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╕рдордп рдРрд╕реА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, AJAX рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде) рдЙрдирдХреЗ рдмрд╛рдж рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд╕рд╛рдеред рдХреЛрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдЖрдкрдХреЛ рдЕрдЧреНрд░рд┐рдо рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдкрд╣рдЪрд╛рдирдиреЗ рдФрд░ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдХреЛрдб рдЯреВрдЯ рд╕рдХрддрд╛ рд╣реИред

4. рд▓реЙрдЧрд┐рдВрдЧ


рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдордиреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдФрд░ рд╕рдВрдпреЛрдЬрди рдХреЗ рджреМрд░рд╛рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╕рдВрднрд╡ рдЙрдкрд╛рдп рдХрд┐рдП рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЕрднреА рднреА рдЙрддреНрдкрд╛рджрдХ рдХреЛрдб рдореЗрдВ рдШреБрд╕рдкреИрда рдХрд░ рд╕рдХрддреА рд╣реИрдВред рд╣рдореЗрдВ рдХрд┐рд╕реА рддрд░рд╣ рдЙрдирдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдФрд░ рддрддреНрдХрд╛рд▓ рд╕реБрдзрд╛рд░рд╛рддреНрдордХ рдЙрдкрд╛рдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрдВрд╕реЛрд▓ рдЦреЛрд▓рдиреЗ рдФрд░ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рддреНрд░реБрдЯрд┐ рд▓реЙрдЧрд┐рдВрдЧ рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИред

рдЕрд░реНрде рд╕рд░рд▓ рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдВрдбреЛ рдХреЗ рд▓рд┐рдПред рдШрдЯрдирд╛ рдпрд╛ рдХреЛрдб рдмреНрд▓реЙрдХ рдореЗрдВ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдХреНрд░рдордг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рд░рд▓ AJAX рдЕрдиреБрд░реЛрдз рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рд╕рд░реНрд╡рд░ рдкрддреЗ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдбрд╛рд▓реА рдЬрд╛рддреА рд╣реИред рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ рдПрдХ рдЙрдкрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреЛ рдирдИ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддрдХрдиреАрдХреА рд╕рд╣рд╛рдпрддрд╛ рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рд╕реВрдЪрд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдЙрдирдХреЗ рд╕рд╛рде рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдЗрди рдлреНрд░рдВрдЯреЗрдВрдб рдЯреВрд▓реНрд╕ рдореЗрдВ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИ рд╕рдВрддрд░реАред

рд╕рдВрддрд░реА рд▓реЙрдЧрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ, рд╕рдореВрд╣ рдмрдирд╛рдиреЗ, рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд╣рд┐рдд рд╡рд┐рднрд┐рдиреНрди рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд╛рдирд╕рднрд╛рдПрдВ рд╣реИрдВред рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡реНрдпрд╡рд╕рд╛рдп рдХреЗ рд▓рд┐рдП рдЙрдиреНрдирдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рд╢реБрд▓реНрдХ рдПрдХреНрд╕реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдк рдЗрд╕рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдореБрдлреНрдд рдкрд░реАрдХреНрд╖рдг рдЦрд╛рддреЗ рдкрд░ рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рдВрддрд░реА рдХреЛ рдпрд╛ рддреЛ рд╕реАрдзреЗ HTML рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдХрд┐рд╕реА рд▓реЛрдХрдкреНрд░рд┐рдп рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдШрдЯрдХреЛрдВ рдореЗрдВ: рд░рд┐рдПрдХреНрдЯ, рд╡реНрдпреВ, рдПрдВрдЧреБрд▓рд░, рдПрдореНрдмрд░ рдФрд░ рдЕрдиреНрдпред

рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╕реАрдзреЗ рд▓реЙрдЧрд┐рдВрдЧ рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЛрдб рдХрд░реЗрдВ:

<script

   src=┬лhttps://browser.sentry-cdn.com/5.13.0/bundle.min.js┬╗

   integrity=┬лsha384-ePH2Cp6F+/PJbfhDWeQuXujAbpil3zowccx6grtsxOals4qYqJzCjeIa7W2UqunJ┬╗

   crossorigin="anonymous"></script>


рдЕрдЧрд▓рд╛, JS рдХреЛрдб рдореЗрдВ, рд╣рдо рдЖрд░рдВрдн рдХрд░рддреЗ рд╣реИрдВ:

Sentry.init({

   dsn: 'https://<your account key here>@sentry.io/<your project id here>'

});

рд╕рдмред рдЗрд╕ рдкрдВрдХреНрддрд┐ рдХреЗ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдореЗрдВ рдпрджрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ, рддреЛ рд╕рдВрддрд░реА рдЙрд╕реЗ рд▓реЙрдЧ рдХрд░реЗрдЧрд╛ред рдЕрдиреНрдп рдбреЛрдореЗрди рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЧрд▓рддреА рдХреЗ рдХрд╛рд░рдг рддреНрд░реБрдЯрд┐ рд╣реЛрдиреЗ рдкрд░ рднреА рд▓реЙрдЧ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:



рд╕рдВрддрд░реА рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдФрд░ рд╕реВрдЪрдирд╛рдУрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рдкрд░реНрдпрд╛рдкреНрдд рдЕрд╡рд╕рд░ рд╣реИред рдЖрдкрдХреЗ рдЙрддреНрдкрд╛рдж рдХреА рд░рд┐рд▓реАрдЬрд╝ рд╕реЗ рд╕рдореВрд╣ рддреНрд░реБрдЯрд┐ рд▓реЙрдЧ рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИ:

Sentry.init({

   dsn: 'https://<your account key here>@sentry.io/<your project id here>',

   release: '2020.03.06.1'

});

рд╕рдВрддрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдБрдХрдбрд╝реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрд▓рд╛рдЗрдВрдЯ рдЬрд╛рдирдХрд╛рд░реА, рдлрд╝рд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ, рддреНрд░реБрдЯрд┐ рд╕реНрддрд░ (рдШрд╛рддрдХ, рддреНрд░реБрдЯрд┐, рдЪреЗрддрд╛рд╡рдиреА, рдЬрд╛рдирдХрд╛рд░реА, рдбреАрдмрдЧ) рдФрд░ рдЯреИрдЧред

рдЖрдВрдХрдбрд╝реЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдпрд╛ AJAX рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреНрд░реИрдХрд┐рдВрдЧ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдВрддрд░реА рдХреЗ рдкрд╛рд╕ рдлреАрдбрдмреИрдХ рд╡рд┐рдВрдбреЛ рдХреЗ рд╕рд╛рде рд╕реНрд╡рдпрдВ рдХрд╛ рд╡рд┐рдЬреЗрдЯ рднреА рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рддреНрд░реБрдЯрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рддреНрд░реБрдЯрд┐ рдХреА рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред

рдЪреМрдЦрдЯреЗ рдХреЗ рд╕рд╛рде рд╕рдВрддрд░реА рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдФрд░ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ:

# Using yarn

yarn add @sentry/browser

# Using npm

npm install @sentry/browser


рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдореБрдЦреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ (рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рдХреЛрдгреАрдп рдХреЗ рд▓рд┐рдП) рдЖрд░рдВрднреАрдХрд░рдг рдХрд░рддреЗ рд╣реИрдВ:

import * as Sentry from ┬л@sentry/browser┬╗;

Sentry.init({ dsn: 'https://<your account key here>@sentry.io/<your project id here>' });


Vue рдФрд░ Ember рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд▓рд╛рдЗрди рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ:

# Vue

Sentry.init({

   dsn: '<your account key here>@sentry.io/<your project id here>',

   integrations: [new Integrations.Vue({Vue, attachProps: true})],

});

# Ember

Sentry.init({

   dsn: '<your account key here>@sentry.io/<your project id here>',

   integrations: [new Integrations.Ember()]

});

рдПрдХреАрдХрд░рдг рдкреИрдХреЗрдЬ рдЕрд▓рдЧ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

# Using yarn

yarn add @sentry/integrations

# Using npm

npm install @sentry/integrations

рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХрдИ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдкрд░ рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рдЯрдХрд░рд╛рд╡ рдФрд░ рджреЛрд╣рд░рд╛рд╡ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдВрддрд░реА рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рд▓реЙрдЧрд┐рдВрдЧ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдХреНрд▓рд╛рдЗрдВрдЯ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

import { BrowserClient } from ┬л@sentry/browser┬╗;

const client = new BrowserClient({

   dsn: '<your account key here>@sentry.io/<your project id here>',

});

client.captureException(new Error('example'));

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рд╕реНрддреГрдд рдкреНрд░рд▓реЗрдЦрди рд╣реИ: https://docs.sentry.io ред

рдпрд╣ рд▓реЗрдЦ Mail.ru Cloud Solutions рдХреНрд▓рд╛рдЙрдб рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд╕рдорд░реНрдерди рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ред

рд╡рд┐рд╖рдп рдкрд░ рдФрд░ рдХреНрдпрд╛ рдкрдврд╝реЗрдВ:

  1. рд░рд┐рдПрдХреНрдЯреЗрдмрд▓ рд░рд┐рдПрдХреНрдЯ рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕: рд╕реЗрдо рд░рд╛рдЗрдЯрд┐рдВрдЧ рдХреЛ рдХреИрд╕реЗ рд░реЛрдХреЗрдВ ред
  2. рд░рд┐рдПрдХреНрдЯ рдкрд░ рд╡рд┐рдХрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдХреИрд╕реЗ рдмрдЪреЗрдВ ред
  3. - .

All Articles