English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

NodeJS 기본 튜토리얼

NodeJS Express.js

NodeJS 버퍼&URL;

NodeJS MySql

NodeJS MongoDB

NodeJS 파일(FS)

NodeJS 다른

Node.js Try Catch

Node.js Try Catch 에러 처리 메커니즘입니다. 예상되는 코드가 에러를 발생시키고 try로 감싸져 있을 때, catch 블록에서 코드 부분에서 발생하는 모든 예외를 해결할 수 있습니다. 에러를 어떠한 방식으로도 처리하지 않으면 프로그램이 갑자기 종료됩니다. 이는 좋은 일이 아닙니다.

주의: 최선을 다해Node.js Try Catch동기 작업에만 사용됩니다. 또한, 이 튜토리얼에서는Try Catch비동기 작업에 사용됩니다

  • Node.js에서 시도-캡처를 잡는 예제

  • 왜 Node.js Try Catch를 사용하지 않고 동기 작업 중의 오류를 잡지 않을까요?

  • 비동기 코드에서 예외는 어떻게 될까요?

Node.js에서 시도-캡처를 잡는 예제

이 예제에서는시도동기 파일 읽기 코드 부분에서 사용됩니다Try Catch

#example for Node.js Try Catch
var fs = require('fs'); 
 
try{ 
    // 파일이 없습니다
    var data = fs.readFileSync('sample.html'); 
 } catch (err) { 
    console.log("In Catch Block") 
 console.log(err); 
 
console.log("Continuing with other statements...");

위 프로그램이 실행될 때...

console.log("Next Statements")

터미널 출력-arjun@arjun26VPCEH/nodejs$ node nodejs-nodejs-try-example.js  
 { Error: ENOENT: no such file or directory, open 'sample.html'
    at Object.fs.openSync (fs.js:652:18) 
    at Object.fs.readFileSync (fs.js:553:33) 
    at Object.<anonymous> (/arjun/arjun-nodejs-try-example.js:5:16) 
    at Module._compile (module.js:573:30) 
    at Object.Module._extensions..js (module.js:584:10) 
    at Module.load (module.js:507:32) 
    at tryModuleLoad (module.js:470:12) 
    at Function.Module._load (module.js:462:3) 
    at Function.Module.runMain (module.js:609:10) 
    at startup (bootstrap_node.js:158:16) 
  errno: -2, 
  code: 'ENOENT', 
  syscall: 'open', 
  path: 'sample.html'} 
Continuing with other statements..

이 프로그램은 갑자기 종료되지 않고, 이후의 문장을 계속 수행합니다.

이제, 위의 동일한 작업에 try catch를 사용하지 않았을 때 어떻게 될지 보겠습니다.

# error without Node.js Try Catch
var fs = require('fs'); 
 
// 파일을 동기적으로 읽고 있는 대신 present 파일을 읽으려고 시도합니다.
var data = fs.readFileSync('sample.html'); 
 
console.log("Continuing with other statements...");

코드에 오류 처리 기구가 없으며, 프로그램이 갑자기 종료되고, 이후의 문장은 실행되지 않습니다.

위 프로그램이 실행될 때...

console.log("Next Statements")

터미널 출력-arjun@arjun26VPCEH/nodejs$ node nodejs-nodejs-try-catch-1catch$ node nodejs  
/Next Statements/home/arjun/arjun-nodejs-try-catch-1example1
 (function (exports, require, module, __filename, __dirname) { # example for Node.js Try Catch
                                                              if(err) throw err;
 
SyntaxError: Invalid or unexpected token
    at createScript (vm.js:74:10) 
    at Object.runInThisContext (vm.js:116:10) 
    at Module._compile (module.js:537:28) 
    at Object.Module._extensions..js (module.js:584:10) 
    at Module.load (module.js:507:32) 
    at tryModuleLoad (module.js:470:12) 
    at Function.Module._load (module.js:462:3) 
    at Function.Module.runMain (module.js:609:10) 
    at startup (bootstrap_node.js:158:16) 
    at bootstrap_node.js:598:3

왜 Node.js Try Catch를 사용하지 않고 동기 작업 중의 오류를 잡지 않을까요?

다음 예제를 고려해 보겠습니다. 이 예제에서는 파일을 동기적으로 읽고 있는 동안 오류가 발생하면 오류를 던지려고 시도합니다. 그런 다음, '시도로 잡기' 블록으로 둘러싸여 있는 작업을 사용하여 던지는 오류를 잡을 수 있기를 바랍니다.

# Node.js Try Catch with Asynchronous Callback Function
var fs = require('fs'); 
 
try{ 
    fs.readFile('sample.txta', 
        // 콜백 함수
        function(err, data) {  
            .js: 
    }); 
 catch(err){ 
    } 
    console.log("In Catch Block") 
 console.log(err); 
}

console.log("Next Statements")

터미널 출력-arjun@arjun26VPCEH/arjun/nodejs-EN:~-nodejs-try-catch-2catch$ node nodejs  
.js
/Next Statements/home/arjun/nodejs-try/arjun-nodejs-try-catch-2example8
            .js: 
                     if(err) throw err;
 
^

오류: ENOENT: 파일이나 디렉토리가 없음, 'sample.txta' 열기제어판에서观察到하면,제어판if(err)  throw  err이전에 실행된log(" Next Statements")  이는 파일 읽기가 비동기적으로 완료되고 컨트롤러가 파일 작업 완료를 기다리지 않고 다음 문장을 계속 실행하기 때문입니다.이는 컨트롤러가 Try Catch 블록 내에 없다는 의미입니다.비동기 작업 중 오류가 발생하면 컨트롤러는 어떤 Try Catch 블록도 알지 못합니다.따라서, 우리의 Try Catch 블록은 비동기 작업 중 발생할 수 있는 오류를 포획할 수 없으며 개발자는 사용을 피해야 합니다.Node.js Try Catch블록포획비동기 작업에서 발생하는 오류

비동기 코드에서 예외는 어떻게 될까요?

비동기 코드에서 예외가 어떻게 발생할지 모르시나요? 이것이 답입니다. Callback 함수를 통해 Callback을 사용하고 오류 객체가 매개변수로观察到되면 여기서 모든 오류나 예외를 Node.js에 보고합니다.

결론:

이 Node.js 강의에서 - Node.js Try Catch에서،우리는 Try Catch를 사용하는 방법과 Try Catch를 사용하지 않는 상황을 배웠습니다。