Bird
Raised Fist0
Node.jsframework~5 mins

process.exit and exit codes in Node.js

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction

We use process.exit to stop a Node.js program immediately. Exit codes tell the system if the program ended well or had a problem.

When you want to stop your program early because of an error.
When a script finishes its job and you want to tell the system it ended successfully.
When you want to signal to other programs if your script failed or succeeded.
When you need to exit after checking some conditions in your code.
When writing command-line tools that need to return status to the operating system.
Syntax
Node.js
process.exit([code])

The code is a number. 0 means success, any other number means an error.

If you don't give a code, it defaults to 0.

Examples
Exit the program with code 0, meaning success.
Node.js
process.exit()
Exit the program with code 1, meaning there was an error.
Node.js
process.exit(1)
Exit with a custom error code 42 to indicate a specific problem.
Node.js
process.exit(42)
Sample Program

This program prints a start message. If you run it with --fail argument, it prints an error and exits with code 1. Otherwise, it prints a success message and exits with code 0.

Node.js
console.log('Start program');
if (process.argv.includes('--fail')) {
  console.error('Error: Something went wrong!');
  process.exit(1);
}
console.log('Program finished successfully');
process.exit(0);
OutputSuccess
Important Notes

Always use process.exit carefully because it stops the program immediately, skipping any remaining code.

Exit codes help other programs or scripts know if your program worked or failed.

Use 0 for success and positive numbers for errors. Negative numbers are not recommended.

Summary

process.exit stops a Node.js program immediately.

Exit codes tell if the program ended well (0) or had an error (non-zero).

Use exit codes to communicate status to the system or other programs.

Practice

(1/5)
1. What does process.exit(0) do in a Node.js program?
easy
A. Stops the program immediately and signals success
B. Stops the program immediately and signals an error
C. Pauses the program without exiting
D. Restarts the program automatically

Solution

  1. Step 1: Understand process.exit behavior

    process.exit immediately stops the Node.js program.
  2. Step 2: Interpret exit code 0

    An exit code of 0 means the program ended successfully without errors.
  3. Final Answer:

    Stops the program immediately and signals success -> Option A
  4. Quick Check:

    Exit code 0 = success [OK]
Hint: Exit code 0 means success, non-zero means error [OK]
Common Mistakes:
  • Thinking exit code 0 means error
  • Confusing pause with exit
  • Assuming process.exit restarts program
2. Which of the following is the correct syntax to exit a Node.js program with an error code 1?
easy
A. process.exit = 1;
B. exit.process(1);
C. process.exit(1);
D. process.exitCode = 1;

Solution

  1. Step 1: Identify correct method to exit

    The method to stop the program is process.exit() with a code inside parentheses.
  2. Step 2: Check syntax correctness

    process.exit(1); is the correct syntax to exit with code 1. Other options misuse method or assignment.
  3. Final Answer:

    process.exit(1); -> Option C
  4. Quick Check:

    Correct method call syntax = process.exit(1); [OK]
Hint: Use process.exit(code) with parentheses to exit [OK]
Common Mistakes:
  • Swapping method and object names
  • Assigning exit code instead of calling exit()
  • Missing parentheses in method call
3. What will be the exit code of this Node.js script?
console.log('Start');
process.exit(2);
console.log('End');
medium
A. Script runs forever
B. 1
C. 0
D. 2

Solution

  1. Step 1: Analyze the code flow

    The script prints 'Start', then calls process.exit(2), which stops the program immediately.
  2. Step 2: Determine exit code and output

    The exit code is 2. The line printing 'End' never runs.
  3. Final Answer:

    2 -> Option D
  4. Quick Check:

    process.exit(2) sets exit code 2 [OK]
Hint: Code after process.exit() does not run [OK]
Common Mistakes:
  • Assuming all console.logs run
  • Confusing exit code with default 0
  • Thinking exit code 2 means success
4. Identify the error in this Node.js code snippet:
process.exit = 1;
console.log('Exiting');
process.exit();
medium
A. process.exit is overwritten and no longer a function
B. process.exit() is called correctly with no error
C. Missing exit code argument in process.exit()
D. console.log should come after process.exit()

Solution

  1. Step 1: Check assignment to process.exit

    The code assigns 1 to process.exit, replacing the function with a number.
  2. Step 2: Understand effect on function call

    Calling process.exit() after overwriting causes an error because it's no longer a function.
  3. Final Answer:

    process.exit is overwritten and no longer a function -> Option A
  4. Quick Check:

    Overwriting process.exit breaks function call [OK]
Hint: Do not assign values to process.exit, it must stay a function [OK]
Common Mistakes:
  • Thinking missing argument causes error
  • Assuming console.log runs after exit
  • Ignoring that process.exit is a function
5. You want your Node.js script to exit with code 0 if a file exists, or code 3 if it does not. Which code snippet correctly implements this?
import fs from 'fs';
const file = 'data.txt';
if (fs.existsSync(file)) {
  process.exit(0);
} else {
  process.exit(3);
}
hard
A. Throws error because fs.existsSync is asynchronous
B. Correctly exits with 0 if file exists, 3 if not
C. Always exits with 0 regardless of file existence
D. Exits with 3 if file exists, 0 if not

Solution

  1. Step 1: Understand fs.existsSync usage

    fs.existsSync checks synchronously if the file exists, returning true or false.
  2. Step 2: Check exit codes in if-else

    If file exists, process.exit(0) runs; else process.exit(3) runs. This matches the requirement.
  3. Final Answer:

    Correctly exits with 0 if file exists, 3 if not -> Option B
  4. Quick Check:

    Sync check + exit codes used correctly [OK]
Hint: Use fs.existsSync for sync check, then process.exit(code) [OK]
Common Mistakes:
  • Using async fs.exists instead of sync
  • Swapping exit codes in if-else
  • Not calling process.exit with parentheses