์จ๋ผ์ธ ๊ฐ์
>PHP - ์ค๊ธ
๐ PHP ์ค๊ธ - 8์ฃผ์ฐจ: ์น ๋ณด์ ๊ธฐ์ด ๋ฐ ์๋ฌ ํธ๋ค๋ง - 04 try-catch ์์ธ ์ฒ๋ฆฌ
				์ฃผ์ ํ๋ก๊ทธ๋จ ์คํ
- ํ์ : 10.0
 - ๋ผ์ด์ ์ค: free
 - ์ด์์ฒด์ :
 - ํ์ผ ํฌ๊ธฐ: 0
 
ํผ๋๋ฐฑ ๋ฐ ๋ค์ด๋ก๋
- ์ฌ์ฉ์ ํ์ : 10.0
 - ๋ค์ด๋ก๋ ์: 1
 - ์กฐํ์: 65
 
์ ์กฐ์ฌ ๋ฐ ๋ฑ๋ก ์ ๋ณด
- ์ ์์ฌ: LUZENSOFT
 - ๋ฑ๋ก์ผ: 2025-08-17 13:31:07
 
- ์ค๋ช
์์ธ(Exception)์ ์๋ฌ(Error)
PHP์์ #์์ธ์ #์๋ฌ๋ ๋ค๋ฆ ๋๋ค. #์๋ฌ๋ ์คํฌ๋ฆฝํธ ์คํ์ ์ค๋จ์ํค๋ ์น๋ช ์ ์ธ ๋ฌธ์ (์: ๊ตฌ๋ฌธ ์ค๋ฅ)์ธ ๋ฐ๋ฉด, #์์ธ๋ ๊ฐ๋ฐ์๊ฐ ์๋์ ์ผ๋ก ์ ์ํ๊ณ ์ฒ๋ฆฌํ ์ ์๋ ๋ฌธ์ ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ํ์ผ์ด ์กด์ฌํ์ง ์๊ฑฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ์ ์คํจํ๋ ๊ฒฝ์ฐ์ ๊ฐ์ด, ํ๋ก๊ทธ๋จ ํ๋ฆ์ ์ ์ดํ๋ฉด์ ๋ฐ์ ๊ฐ๋ฅํ ๋ฌธ์ ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
try-catch ๊ธฐ๋ณธ ๊ตฌ์กฐ
try-catch ๋ธ๋ก์ ์์ธ ์ฒ๋ฆฌ๋ฅผ ์ํ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ๋ฌธ์
๋๋ค. ์ ์ฌ์ ์ผ๋ก ์์ธ๋ฅผ ๋ฐ์์ํฌ ์ ์๋ ์ฝ๋๋ฅผ try ๋ธ๋ก์ ๋ฃ๊ณ , ์์ธ๊ฐ ๋ฐ์ํ์ ๋ ์คํํ  ์ฝ๋๋ฅผ catch ๋ธ๋ก์ ์์ฑํฉ๋๋ค.
PHP
try {
    // ์์ธ๊ฐ ๋ฐ์ํ  ๊ฐ๋ฅ์ฑ์ด ์๋ ์ฝ๋
} catch (Exception $e) {
    // ์์ธ๊ฐ ๋ฐ์ํ์ ๋ ์คํ๋  ์ฝ๋
    // $e ๋ณ์์๋ ์์ธ ๊ฐ์ฒด๊ฐ ๋ด๊น๋๋ค.
}
try ๋ธ๋ก
try ๋ธ๋ก์๋ ์ ์์ ์ผ๋ก ์คํ๋๊ธฐ๋ฅผ ๊ธฐ๋ํ๋ ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค. ๋ง์ฝ ์ด ์ฝ๋์์ ์์ธ๊ฐ ๋ฐ์ํ๋ฉด ์ฆ์ ์คํ์ ๋ฉ์ถ๊ณ  ์ ์ด๊ถ์ catch ๋ธ๋ก์ผ๋ก ๋๊น๋๋ค.
catch ๋ธ๋ก
catch ๋ธ๋ก์ try ๋ธ๋ก์์ ๋ฐ์ํ ์์ธ๋ฅผ "์ก์์" ์ฒ๋ฆฌํ๋ ์ญํ ์ ํฉ๋๋ค. catch ๋ค์๋ ์ด๋ค ์ข
๋ฅ์ ์์ธ๋ฅผ ์ก์์ง ๋ช
์ํ๋ฉฐ, $e์ ๊ฐ์ ๋ณ์๋ฅผ ํตํด ์์ธ ๊ฐ์ฒด์ ์ ๊ทผํ  ์ ์์ต๋๋ค. $e->getMessage(): ์์ธ ๋ฉ์์ง๋ฅผ ๊ฐ์ ธ์ต๋๋ค. $e->getCode(): ์์ธ ์ฝ๋๋ฅผ ๊ฐ์ ธ์ต๋๋ค. $e->getFile(): ์์ธ๊ฐ ๋ฐ์ํ ํ์ผ๋ช
์ ๊ฐ์ ธ์ต๋๋ค. $e->getLine(): ์์ธ๊ฐ ๋ฐ์ํ ๋ผ์ธ ๋ฒํธ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
๋ค์ค catch ๋ธ๋ก
PHP๋ ์ฌ๋ฌ ์ข
๋ฅ์ ์์ธ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ฌ๋ฌ ๊ฐ์ catch ๋ธ๋ก์ ๊ฐ์ง ์ ์์ต๋๋ค. ์ด๋ ํน์  ์์ธ ์ ํ์ ๋ฐ๋ผ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก #์๋ฌํธ๋ค๋ง์ ํ  ๋ ์ ์ฉํฉ๋๋ค.
์์: ๋ค์ค catch
PHP
<?php
try {
    // ์ฝ๋
} catch (InvalidArgumentException $e) {
    echo "์๋ชป๋ ์ธ์ ์ค๋ฅ: " . $e->getMessage();
} catch (RuntimeException $e) {
    echo "๋ฐํ์ ์ค๋ฅ: " . $e->getMessage();
} catch (Exception $e) {
    echo "์ ์ ์๋ ์ค๋ฅ: " . $e->getMessage();
}
?>
catch ๋ธ๋ก์ ์์์๋ถํฐ ์์๋๋ก ์์ธ ์ ํ์ ํ์ธํ๋ฏ๋ก, ๋ ๊ตฌ์ฒด์ ์ธ ์์ธ ํด๋์ค๋ฅผ ๋จผ์  ์์ฑํด์ผ ํฉ๋๋ค.
finally ๋ธ๋ก
try์ catch ๋ธ๋ก ๋ค์ finally ๋ธ๋ก์ ์ถ๊ฐํ  ์ ์์ต๋๋ค. finally ๋ธ๋ก์ ์ฝ๋๋ ์์ธ ๋ฐ์ ์ฌ๋ถ์ ๊ด๊ณ์์ด ํญ์ ์คํ๋ฉ๋๋ค. ์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ์ ๋ซ๊ฑฐ๋ ํ์ผ์ ์ ๋ฆฌํ๋ ๋ฑ, ์์์ ํด์ ํ๋ ๋ฐ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ฉ๋๋ค.
PHP
<?php
try {
    // ์ฝ๋
} catch (Exception $e) {
    // ์์ธ ์ฒ๋ฆฌ
} finally {
    // ์์ธ ๋ฐ์ ์ฌ๋ถ์ ๊ด๊ณ์์ด ํญ์ ์คํ๋  ์ฝ๋
    echo "์์
์ด ์๋ฃ๋์์ต๋๋ค.";
}
?>๋ค์ด๋ฒ ๋ธ๋ก๊ทธ #์์ด์ถ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ์ฌ ๋ธ๋ก๊ทธ ์ฑ์ฅ์ ๊ฐ์ํํ์ธ์.
๋จ์๊ฐ์ ์๋ฐฑ ๋ช ์ ์ด์์ ์ถ๊ฐํ๊ณ , ๋ธ๋ก๊ทธ ์ง์๋ฅผ ์์น์ํค๋ ๊ฐ์ฅ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ ๋๋ค.
์๋ํ๋ #์ด์์ถ๊ฐ, #๋๊ธ, #๊ณต๊ฐ ๊ธฐ๋ฅ์ ํตํด ์ค์  ํ๋ํ๋ ์ด์์ ํ๋ณดํ๊ณ , ๋ธ๋ก๊ทธ ํ์ฑ๋๋ฅผ ๋์ฌ ๋ณด์ธ์.
๋ธ๋ก๊ทธ ์ด์ ์๊ฐ์ ์ ์ฝํ๊ณ ์ถ๋ค๋ฉด ์ง๊ธ ๋ฐ๋ก ์์ํด ๋ณด์ธ์.
์ง์์ ์ธ #์ํต ๊ด๋ฆฌ๋ฅผ ํตํด ๋ธ๋ก๊ทธ ์ ์ฌ๋ ฅ์ ๊ทน๋ํํ ์ ์์ต๋๋ค.
#๋ธ๋ก๊ทธ๋ง์ผํ #๋ธ๋ก๊ทธ์ฑ์ฅ #๋ธ๋ก๊ทธ๊ด๋ฆฌ #๋ค์ด๋ฒ๋ธ๋ก๊ทธ