[예외 처리와 오류 처리]오류 처리 방법과 예외 처리 문법

Bash 쉘에서 오류 처리를 위해 다양한 방법을 사용할 수 있습니다. 주요한 방법으로는 오류 코드, 조건문을 사용한 처리, 예외 처리 문법 등이 있습니다.

  1. 오류 코드:

    • $?: 최근 실행한 명령어의 종료 상태를 나타내는 변수
    • exit: 스크립트를 종료하고 지정된 오류 코드로 상태를 반환
  2. 조건문을 사용한 처리:

    • if-else 문을 사용하여 조건에 따라 오류 처리 로직 작성
  3. 예외 처리 문법:

    • trap을 사용하여 오류 발생 시 실행할 동작 설정
    • set -e: 오류가 발생하면 즉시 스크립트를 종료
    • set -o pipefail: 파이프 라인에서 어떤 명령어라도 오류가 발생하면 스크립트를 종료

[기본 샘플 코드]

오류 코드를 사용한 처리:

command
if [ $? -ne 0 ]; then
  echo "Command failed with exit code $?"
fi

조건문을 사용한 처리:

if command; then
  echo "Command executed successfully."
else
  echo "Command failed."
fi

예외 처리 문법:

trap 'echo "Error occurred."; exit 1' ERR

# 오류 발생 시 스크립트 종료
set -e

# 파이프 라인에서 오류 발생 시 스크립트 종료
set -o pipefail

[응용 코드]

다른 함수와 함께 사용하는 예시:

# 함수 내에서 오류 처리
process_file() {
  if [ ! -f "$1" ]; then
    echo "File not found: $1"
    return 1
  fi

  # 파일 처리 로직
}

process_file "file.txt"

# 오류 처리 시 스크립트 종료
handle_error() {
  echo "An error occurred."
  exit 1
}

command1 || handle_error
command2 || handle_error

[조건문과 반복문과 함께 사용하는 샘플 코드]

# 조건문을 사용하여 오류 처리
if command1; then
  # 성공 시 처리
else
  # 오류 처리
fi

# 반복문과 함께 오류 처리
for file in *.txt; do
  process_file "$file" || break
done

[성능 향상을 위한 팁]

  • 불필요한 오류 처리를 피하고, 필요한 부분에만 오류 처리를 적용하세요.
  • 오류 처리를 할 때는 로그를 적절히 기록하여 추후 디버깅에 도움이 되도록 하세요.

[성능 향상을 위한

팁에 해당하는 샘플 코드]

# 오류 처리 로그 기록
handle_error() {
  local error_message="An error occurred."
  echo "$error_message" >> error.log
  exit 1
}

# 오류 처리 필요한 부분에만 적용
if command1; then
  process1 || handle_error
else
  handle_error
fi

게시됨

카테고리

,

작성자