오늘은 예외처리에 관해서 알아보겠습니다.
예외 처리 또는 오류 처리는 일반적인 실행의 흐름을 바꾸는 몇 가지 조건을 처리하도록 설계한 프로그래밍 언어의 개념이나 컴퓨터 하드웨어 구조를 말한다. 일반적으로 프로그램이 처리되는 동안 특정한 문제가 일어났을 때 처리를 중단하고 다른 처리를 하는 것을 예외 처리라고 한다.
한마디로 동작중 오류가 발생했을때 원하는 방식으로 동작하게끔 코드를 작성하는것을 예외처리라 할수있습니다.
오늘은 JS에서 try & catch & finally 를 사용해서 예외처리 해보겠습니다.
두개의 인자를 받아서 해당 인자가 정수일 경우 더한값을 리턴해주는 함수에 예외처리를 해보겠습니다
function Plus(a,b){
if(typeof a !== 'number' || typeof b !== 'number'){
throw new Error('number타입의 값만 입력해주세요')
console.log('이곳은 실행되지 않는 코드입니다')
}
else {
return console.log(a+b)
}
}
예외를 발생시키기 위해서 throw 문을 사용
throw는 임의적으로 예외를 발생 시킬 수 있습니다. return과 같이 코드가 실행되면 다음 코드가 실행 되지 않고 에러를 반환합니다.
function ExceptionHandling(){
try {
let a = prompt('원하는 숫자를 입력해주세요')
let b = prompt('원하는 숫자를 입력해주세요')
Plus(a,b)
} catch (error) {
console.log(error)
}
finally{
console.log('결과 상관없이 실행되는 코드입니다')
}
}
ExceptionHandling()
try 영역엔 일반적으로 진행되는 코드영역이고 catch 영역은 try 과정에서 예외가 발생했을때 해당 예외를 처리하기위해 작성하는 코드영역입니다.
finally은 try의 결과와 상관없이 try 코드영역이 종료되면 무조껀 실행되는 코드를 작성하는곳입니다.
해당 코드에서는 위에서 만든 Plus함수를 이용해서 예외처리하는 함수를 만들어봤습니다.
a,b를 입력받는데 정수 타입은 경우 a+b를 반환받을것이고 정수 타입의 값이 아닐경우에 Plus에서 설정한 'number타입의 값만 입력해주세요' 라는 에러가 catch문의 매개변수인 error에 전달되고 catch 문의 코드가 실행되며 catch문의 실행 여부를 떠나 최종적으로 console에는 '결과 상관없이 실행되는 코드입니다' 가 작성됩니다.