A Developing Developer
08-1. 구문 오류와 예외 본문
- 구문 오류(Syntax error) : 프로그램 실행 전에 발생하는 코드의 문법적인 문제로 발생하는 오류를 의미
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>구문 오류</title>
<script>
console.log('# 프로그램 시작')
console.log('괄호 닫지 않는 실수'
</script>
</head>
<body>
</body>
</html>
- 예외(exception) : 프로그램 실행 중에 발생하는 모든 오류
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>예외 처리</title>
<script>
console.log('# 프로그램 시작')
console.rog('log 를 rog 로 잘 못 입력')
</script>
</head>
<body>
</body>
</html>
- 예외 처리 : 예외가 발생했을 때 프로그램이 중단되지 않게 하는 처리, 구문 오류는 예외 처리로 처리할 수 없음
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>querySelector() 메소드로 추출된 문서 객체가 없는 경우</title>
<script>
document.addEventListener('DOMContentLoaded', () => {
const h1 = document.querySelector('h1')
h1.textContent = '안녕하세요'
})
</script>
</head>
<body>
</body>
</html>
- 기본 예외 처리
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>기본 예외 처리</title>
<script>
document.addEventListener('DOMContentLoaded', () => {
const h1 = document.querySelector('h1')
if (h1) {
h1.textContent = '안녕하세요'
} else {
console.log('h1 태그를 추출할 수 없습니다.')
}
})
</script>
</head>
<body>
</body>
</html>
자바스크립트는 다른 프로그래밍 언어와 비교해서 굉장히 유연해서 예외를 발생할 가능성이 적은 편이다
하지만 예외를 발생하지 않는게 좋은 것이 아니다.
프로그램에 문제가 발생했음에도 불구하고 죽지 않는다면 계속 실행되어서 다른 문제들을 만들 가능성이 있다.
따라서 문제가 발생할 수 있는 부분은 조건문 등으로 처리해 줘야 한다.
- try catch finally 구문 : try 구문 안에서 예외가 발생하면 catch 구문에서 처리하고, finally 구문은 예외 발생 여부와 상관없이 실행해야 하는 작업이 있을 때 사용
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>고급 예외 처리 try catch finally</title>
<script>
try {
// 예외가 발생할 가능성이 있는 코드
} catch (e) {
// 예외가 발생했을 때 실핼할 코드
} finally {
// 무조건 실핼항 코드
}
</script>
</head>
<body>
</body>
</html>
- try catch 구문의 활용
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>try catch 구문의 활용</title>
<script>
try {
willExcept.byeBye() // 없는 객체와 메소드
console.log('try 구문')
} catch (e) {
console.log('catch 구문')
}
</script>
</head>
<body>
</body>
</html>
- finally 구문
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>finally 구문</title>
<script>
try {
willExcept.byeBye() // 없는 객체와 메소드
console.log('try 구문')
} catch (e) {
console.log('catch 구문')
} finally {
console.log('finally 구문')
}
</script>
</head>
<body>
</body>
</html>
- finally 구문을 사용하는 이유
- 예외 처리 구문 내부에서 return 사용하기(1)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>예외 처리 구문 내부에서 return 사용하기(1)</title>
<script>
function test() {
try {
alert('A 위치')
throw "에외 강제 발생" // throw 키워드 : 예외를 강제로 발생
} catch (e) {
alert('B 위치')
return
}
alert('C 위치')
}
// 함수 호출
test()
</script>
</head>
<body>
</body>
</html>
- 예외 처리 구문 내부에서 return 사용하기(2)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>예외 처리 구문 내부에서 return 사용하기(2)</title>
<script>
function test() {
try {
alert('A 위치')
throw "에외 강제 발생" // throw 키워드 : 예외를 강제로 발생
} catch (e) {
alert('B 위치')
return
} finally {
alert('C 위치')
}
}
// 함수 호출
test()
</script>
</head>
<body>
</body>
</html>
finally 구문은 반드시 실행된다, 예외발생 하든 안하든
============================================================================================
출처 : 혼자 공부하는 자바스크립트
============================================================================================
내일 본캠프시작인데 이러고있다...
바쁘다바빠
'내일배움캠프 4기 > [Javascript]혼자 공부하는 자바스크립트' 카테고리의 다른 글
09-1. 클래스의 기본 기능 (0) | 2022.11.13 |
---|---|
08-2. 예외 처리 고급 (0) | 2022.11.13 |
07-2. 이벤트 활용 (1) | 2022.11.12 |
07-1. 문서 객체 조작하기 (1) | 2022.11.12 |
06-3. 객체와 배열 고급 (0) | 2022.11.12 |