function test(){
let a = 1;
let b = 2;
const func1 = () => {
if(a == 1){
throw new Error("a = 1");
}
console.log('func1 success');
}
const func2 = () => {
if(b == 2){
throw new Error("b = 2");
}
console.log(`func2 success`);
}
try{
func1();
func2();
}
catch(ex){
console.error(`test failed - ${ex.message}`);
return;
}
}
test();
하나의 작업을 수행하는 함수 내에서도 다양한 추상화 수준의 코드들이 존재할 수 있기 때문에 이들을 다시 내부 함수로 분리하여 코드 가독성을 높이고, 내부 함수들을 try-catch 문에서 한번에 실행함으로써 오류 처리와 가독성을 높일 수 있습니다.
아래는 비동기 함수에 대한 처리 방법입니다.
async function test(){
let a = 2;
let b = 2;
const func1 = (value) => new Promise((resolve, reject) =>{
setTimeout(()=>{
console.log(value);
if(a == 1){
reject(new Error('func1 error'));
}
resolve('func1 success');
}, 1000);
});
const func2 = (value) => new Promise((resolve, reject) =>{
setTimeout(()=>{
console.log(value);
if(b == 2){
reject(new Error('func2 error'));
}
resolve('func2 success');
}, 1500);
});
try{
let result = await func1('func1 call');
console.log(result);
result = await func2('func2 call');
console.log(result);
}
catch(ex){
console.error(`test failed - ${ex.message}`);
return;
}
}
test();
'컴퓨터 공학 > JavaScript' 카테고리의 다른 글
node.js 기반 윈도우 용 초간단 파일 공유 서버 (0) | 2019.11.27 |
---|---|
http 서버에서 multipart/form-data에 boundary 넣는 방법 (0) | 2019.11.14 |
N-API 관련 자료 수집 (0) | 2019.11.14 |
[초간단] Visual Studio Code에서 Vue.js 설치하기 (0) | 2019.11.14 |
Node.js UTF-8 데이터 CSV 파일 저장시 한글 깨짐 문제 (0) | 2019.11.14 |