https://blog.sentry.io/2016/01/04/client-javascript-reporting-window-onerror.html μμ μκ°λ₯Ό μ½κ³ ravenμ μμ€ μ½λλ₯Ό 보λ κ²μ onerror
μ£Όμ΄μ§ λΈλΌμ°μ (μ: chrome/FF)κ° μ€λ₯ κ°μ²΄λ₯Ό μ 곡νλλΌλ μ€ν μΆμ μ κ²μνκΈ° μν΄ λͺ¨λ λ΄μ₯ κΈ°λ₯μ try/catchλ‘ ν¨μΉνλ μμμ΄λ‘?
λμκ²λ λΈλΌμ°μ κ° νμνμ§ μμ κ²½μ° λΆνμν μμ μ μννλλ‘ νλ κ²μ²λΌ 보μ λλ€. μλλ©΄ κΉλ§κ·κ° μ΄κ²μ 보μ¦νλ λ€λ₯Έ μΌμ νκ³ μμ΅λκΉ?
νΈμ§ : μλ§λ κΉλ§κ· λ Έλμ λν΄ μννμ§ μλ κ² κ°μ΅λλ€.
μ΅μν "μ€λ₯ κ°μ²΄κ° νμν©λλ€"μ κ΄ν κ²μ μλλλ€. μ΄λ€ κ²½μ°μλ μ¬μ© κ°λ₯ν μ€λ₯κ° λ¨μν μ¬μ©ν μ μμΌλ©° μ¬κΈ°μλ Firefoxμ κ°μ μ΅μ λΈλΌμ°μ κ° ν¬ν¨λ©λλ€. μλ₯Ό λ€μ΄, μ 체 μ€νμ ν¬ν¨νμ§ μκ±°λ μΈλΆ μ 보(μ: μ΄ λ²νΈ)κ° λλ½λ μ μμ΅λλ€.
μ΄κ²μ΄ μ€λλ μλ μμ ν μ¬μ€μΈμ§ νμ€νμ§ μλ€λ μ μμ ν° λ³νκ° νμλ©λλ€. κ·Έλ¬λ κ·Έλ κ² μ€λλμ§λ μμμ΅λλ€.
tl;dr μμΈ‘ κ°λ₯ν λμμ 보μ₯ν λ€μ λΈλΌμ°μ κ° λ³κ²½/νΉμ΄μ μ΄ μλ μ²νλ λ° ν΄κ° λλ κ²μ 무μμ λκΉ?
μ΄λ λμΌν μ€λ₯κ° μλ‘ λ€λ₯Έ λΈλΌμ°μ μμ μ νν λμΌν μ€ν μΆμ μ λ°μνλλ‘ νμ¬ μλ‘ λ€λ₯Έ λΈλΌμ°μ μμ λμΌν λ¬Έμ μ μ¬λ¬ λ°μμ ν¨κ» μ ννκ² κ·Έλ£Ήνν μ μλλ‘ νλ λ° μ£Όλ‘ νμν©λλ€. μ΄κ²μ λν κ΅μ°¨ μΆμ² μ€ν¬λ¦½νΈκ° μ€λ₯λ₯Ό λ°μμν¬ λ "μ€ν¬λ¦½νΈ μ€λ₯" μ΄μμ μ»λ λ°©λ²κ³Ό κ΄λ ¨μ΄ μμΌλ©°( μ΄μ λν Benμ λΈλ‘κ·Έ κ²μλ¬Ό μ°Έμ‘°) μ΄ λꡬμμ μλ μ΄λ κ²½λ‘ μ€ μΌλΆλ₯Ό μμ§ν©λλ€.
κ·Έ λͺ¨λ κ²μ μ μ³λκ³ , κ·νκ° μ€λͺ
νλ μ μ¬μ μΈ "λΆνμν μμ
"μ κ·Ήν λ―Έλ―Ένλ©°, window.onerror
λμμ κ°μ§νλ κΈ°λ₯μ κΉλνκ² μννκΈ° μ΄λ ΅κ³ , μ°λ¦¬λ μ΄λ€ λΈλΌμ°μ μ λν μ΅μ 맀νΈλ¦μ€λ₯Ό μ μ§νλ €κ³ νμ§ μμ΅λλ€. λ²μ μ λμ λͺ¨λ λΈλΌμ°μ μμ μ κ·νν μ μμ λ window.onerror
λ₯Ό μ¬μ©ν©λλ€.
try/catch μμ΄λ μ€λ₯κ° μλ κ°μ²΄κ° throwλλ κ²½μ°(μ: throw "error"
) "ν©μ± μΆμ "μ μμ±ν μ μλ€λ μ μ μΆκ°ν΄μΌ ν©λλ€. ν©μ± μΆμ μ ν΅ν΄ μλͺ»λ κ°μ²΄κ° λ°μν μμΉλ₯Ό νμΈν μ μμΌλ©° μ΄λ λ²κ·Έλ₯Ό μΆμ νλ λ° μ€μν μ μμ΅λλ€.