Menu
Coddy logo textTech

'try...catch' 블록

Coddy PHP 여정의 논리 & 흐름 섹션에 포함된 레슨 — 68개 중 53번째.

PHP 코드가 충돌을 일으킬 수 있는 문제에 직면했을 때, 이러한 상황을 유연하게 처리할 방법이 필요합니다. try...catch 블록은 코드 내의 심각한 문제를 나타내는 특별한 오류 객체인 예외를 처리하기 위한 구조화된 접근 방식을 제공합니다.

try 블록은 실패하거나 예외를 발생시킬 수 있는 코드를 포함합니다. 이 블록 내에서 예외가 발생하면, PHP는 즉시 try 블록의 나머지 코드 실행을 중단하고 해당 catch 블록으로 이동합니다. catch 블록은 예외를 처리하여, 스크립트가 중단되지 않고 계속 실행될 수 있도록 합니다.

<?php
try {
    // 예외를 발생시킬 수 있는 코드
    $result = riskyFunction();
    echo "Success!";
} catch (Exception $e) {
    // 예외 처리
    echo "An error occurred: " . $e->getMessage();
}
?>

catch 블록은 무엇이 잘못되었는지에 대한 정보를 포함하는 Exception 객체를 받습니다. getMessage() 메서드를 사용하여 에러 메시지에 접근할 수 있습니다. 이러한 방식은 문제가 발생했을 때 전체 스크립트가 중단되는 것을 방지하며, 에러 처리 방식과 사용자에게 보여줄 내용을 제어할 수 있게 해줍니다.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

challenge icon

챌린지

쉬움

하나의 입력을 받게 됩니다: 나이를 나타내는 숫자입니다. 입력값은 나이로 적절하지 않은 음수일 수도 있습니다.

입력을 읽고 정수로 변환한 뒤, try...catch 블록을 생성하세요. try 블록 내부에서 나이가 음수인지 확인합니다. 만약 음수라면, "Age cannot be negative"라는 메시지와 함께 새로운 Exception을 던지세요(throw). 나이가 유효하다면(0 또는 양수), "Valid age: " 뒤에 나이 값을 출력하세요.

catch 블록에서는 getMessage() 메서드를 사용하여 "Error: " 뒤에 예외 메시지를 출력함으로써 예외를 처리하세요.

입력 형식: 정수 하나가 포함된 한 줄 (예: 25 또는 -5)

예상 출력:

  • 나이가 유효한 경우: Valid age: 뒤에 나이 값 출력
  • 나이가 음수인 경우: Error: Age cannot be negative

치트 시트

try...catch 블록은 PHP에서 예외를 처리하여 오류가 발생했을 때 스크립트가 중단되는 것을 방지합니다.

기본 구문:

<?php
try {
    // 예외를 발생시킬 수 있는 코드
    $result = riskyFunction();
    echo "Success!";
} catch (Exception $e) {
    // 예외 처리
    echo "An error occurred: " . $e->getMessage();
}
?>

try 블록에는 잠재적으로 문제가 발생할 수 있는 코드가 포함됩니다. 예외가 발생하면 PHP는 catch 블록으로 이동하며, 이 블록은 Exception 객체를 전달받습니다. 오류 메시지에 접근하려면 getMessage()를 사용하세요.

다음과 같이 수동으로 예외를 발생시킬 수 있습니다:

throw new Exception("Custom error message");

직접 해보기

<?php
// 입력 읽기
$age = intval(fgets(STDIN));

// TODO: 아래에 코드를 작성하세요
// 나이를 검증하기 위해 try...catch 블록을 생성하세요


?>
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리 & 흐름의 모든 레슨