
PHP ์จ๋ผ์ธ ๊ฐ์
>PHP - ์ค๊ธ
๐ PHP ์ค๊ธ - 8์ฃผ์ฐจ: ์น ๋ณด์ ๊ธฐ์ด ๋ฐ ์๋ฌ ํธ๋ค๋ง - 04 try-catch ์์ธ ์ฒ๋ฆฌ
![]() |
ํ์ | 10.0 | ๋ผ์ด์ผ์ค | free |
---|---|---|---|---|
์ฌ์ฉ์ํ์ | 10.0 | ์ด์์ฒด์ | ||
๋ค์ด๋ก๋ | 1 | ํ์ผํฌ๊ธฐ | 0 | |
์ ์์ฌ | LUZENSOFT | ๋ฑ๋ก์ผ | 2025-08-17 13:31:07 | |
์กฐํ์ | 8 |
์์ธ(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 "์์
์ด ์๋ฃ๋์์ต๋๋ค.";
}
?>
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ #์์ด์ถ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ์ฌ ๋ธ๋ก๊ทธ ์ฑ์ฅ์ ๊ฐ์ํํ์ธ์.
๋จ์๊ฐ์ ์๋ฐฑ ๋ช ์ ์ด์์ ์ถ๊ฐํ๊ณ , ๋ธ๋ก๊ทธ ์ง์๋ฅผ ์์น์ํค๋ ๊ฐ์ฅ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ ๋๋ค.
์๋ํ๋ #์ด์์ถ๊ฐ, #๋๊ธ, #๊ณต๊ฐ ๊ธฐ๋ฅ์ ํตํด ์ค์ ํ๋ํ๋ ์ด์์ ํ๋ณดํ๊ณ , ๋ธ๋ก๊ทธ ํ์ฑ๋๋ฅผ ๋์ฌ ๋ณด์ธ์.
๋ธ๋ก๊ทธ ์ด์ ์๊ฐ์ ์ ์ฝํ๊ณ ์ถ๋ค๋ฉด ์ง๊ธ ๋ฐ๋ก ์์ํด ๋ณด์ธ์.
์ง์์ ์ธ #์ํต ๊ด๋ฆฌ๋ฅผ ํตํด ๋ธ๋ก๊ทธ ์ ์ฌ๋ ฅ์ ๊ทน๋ํํ ์ ์์ต๋๋ค.
#๋ธ๋ก๊ทธ๋ง์ผํ #๋ธ๋ก๊ทธ์ฑ์ฅ #๋ธ๋ก๊ทธ๊ด๋ฆฌ #๋ค์ด๋ฒ๋ธ๋ก๊ทธ