에러 핸들링 -> 에러 발생 대비가 없으면 프로그램 종료
try ... catch문try {
// 에러 발생 여지가 있는 코드
// 여기서 에러가 나도 프로그램을 멈추지 않음
} catch(발생한 오류 객체) {
// 에러 발생 시 실행할 코드
}
// + finally 블록
// 에러 여부 관계없이 실행하는 코드 같음 (내 생각)
// try이나 catch문에 return이 있더라도 반드시 실행!
const error = new Error('뭔가 잘못됐어'); // 에러 생성도 가능하다~~
console.error(error);
기본 인스턴스 프로퍼티가
name,message이런거구나..?
API 통신이라고 해야 하나?
아직 잘 모르지만 로그인 로그아웃 서버와 통신(?)할 때
오류를 잡아야 하는 경우가 있었다.
그럴 때 message 프로피터를 활용해서 코드를 짰었는데
에러 또한 객체라는 것을 알 수 있었다.
(맞나...?)
사실 에러가 나면 ..
에러의 이름을 확인 하지 않았다.
'엥?!!! 무슨 에러지?!!!!!!!' 하면서
요즘에는 chat GPT에 무작정 검색하곤 했다.
그런데 스스로 어떤 에러인지 name 프로퍼티, message 프로퍼티 정도는 확인해야겠다고 생각했다.
이렇게 친절하다니! ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
하지만 코드가 길고 복잡하면 찾기 더 어렵겠지??
const x x;

try {
(3).split('');
} catch (e) {
console.error(e);
console.log(e.name);
console.log(e.message, '\n\n');
}

❤ 조건문을 활용한다면!
var는 사용하지 말아라!
이유로는
선언 없이 사용 가능
재선언 가능
블록 레벨 스코프 무시 등등
'use strict'를 자바스크립트 문서 최상단에 작성하면 문서 전체에 적용됨
기존의 느슨한 모드에서 허용되던, 문제를 유발할 수 있는 코드들에 오류를 발생시킴
?. - 옵셔널 체이닝 연산자
호출 대상이 undefined나 null이어도 오류를 발생시키지 않음 - 대신 undefined 반환
언제 사용하나요?
유효하지 않을 수 있는 참조에 의한 문제들
네트워크 요청 등, 어떤 값이 들어올지 모르는 상황
근뎅..? error로 잡는게 더 확실할 것 같은데?
그러면 코드 실행이 멈추니깐 일단 undefined로 하는 건가?
네트워크 오류 빈도수가 많으니깐?
이유가 뭐야?!
출처
[제대로 파는 자바스크립트(JavaScript) - by 얄코], [강의링크]