216.73.216.97 TODAY : 158

PHP ์˜จ๋ผ์ธ ๊ฐ•์˜

 > 

PHP - ์ค‘๊ธ‰

๐Ÿ“š PHP ์ค‘๊ธ‰ - 8์ฃผ์ฐจ: ์›น ๋ณด์•ˆ ๊ธฐ์ดˆ ๋ฐ ์—๋Ÿฌ ํ•ธ๋“ค๋ง - 04 try-catch ์˜ˆ์™ธ ์ฒ˜๋ฆฌ

๐Ÿ“š PHP ์ค‘๊ธ‰ - 8์ฃผ์ฐจ: ์›น ๋ณด์•ˆ ๊ธฐ์ดˆ ๋ฐ ์—๋Ÿฌ ํ•ธ๋“ค๋ง - 04 try-catch ์˜ˆ์™ธ ์ฒ˜๋ฆฌ
ํ‰์  10.0 ๋ผ์ด์„ผ์Šค free
์‚ฌ์šฉ์žํ‰์  10.0 ์šด์˜์ฒด์ œ
๋‹ค์šด๋กœ๋“œ 1 ํŒŒ์ผํฌ๊ธฐ 0
์ œ์ž‘์‚ฌ LUZENSOFT ๋“ฑ๋ก์ผ 2025-08-17 13:31:07
์กฐํšŒ์ˆ˜ 8
- ์„ค๋ช…


์˜ˆ์™ธ(Exception)์™€ ์—๋Ÿฌ(Error)

uploadImage

PHP์—์„œ #์˜ˆ์™ธ์™€ #์—๋Ÿฌ๋Š” ๋‹ค๋ฆ…๋‹ˆ๋‹ค. #์—๋Ÿฌ๋Š” ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰์„ ์ค‘๋‹จ์‹œํ‚ค๋Š” ์น˜๋ช…์ ์ธ ๋ฌธ์ œ(์˜ˆ: ๊ตฌ๋ฌธ ์˜ค๋ฅ˜)์ธ ๋ฐ˜๋ฉด, #์˜ˆ์™ธ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์˜๋„์ ์œผ๋กœ ์ •์˜ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์— ์‹คํŒจํ•˜๋Š” ๊ฒฝ์šฐ์™€ ๊ฐ™์ด, ํ”„๋กœ๊ทธ๋žจ ํ๋ฆ„์„ ์ œ์–ดํ•˜๋ฉด์„œ ๋ฐœ์ƒ ๊ฐ€๋Šฅํ•œ ๋ฌธ์ œ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.



try-catch ๊ธฐ๋ณธ ๊ตฌ์กฐ

uploadImage

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 ๋ธ”๋ก

uploadImage

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 ๋ธ”๋ก

uploadImage

try์™€ catch ๋ธ”๋ก ๋’ค์— finally ๋ธ”๋ก์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. finally ๋ธ”๋ก์˜ ์ฝ”๋“œ๋Š” ์˜ˆ์™ธ ๋ฐœ์ƒ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์„ ๋‹ซ๊ฑฐ๋‚˜ ํŒŒ์ผ์„ ์ •๋ฆฌํ•˜๋Š” ๋“ฑ, ์ž์›์„ ํ•ด์ œํ•˜๋Š” ๋ฐ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

PHP

<?php
try {
    // ์ฝ”๋“œ
} catch (Exception $e) {
    // ์˜ˆ์™ธ ์ฒ˜๋ฆฌ
} finally {
    // ์˜ˆ์™ธ ๋ฐœ์ƒ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ ์‹คํ–‰๋  ์ฝ”๋“œ
    echo "์ž‘์—…์ด ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.";
}
?>



๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ #์„œ์ด์ถ” ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ธ”๋กœ๊ทธ ์„ฑ์žฅ์„ ๊ฐ€์†ํ™”ํ•˜์„ธ์š”. 

๋‹จ์‹œ๊ฐ„์— ์ˆ˜๋ฐฑ ๋ช…์˜ ์ด์›ƒ์„ ์ถ”๊ฐ€ํ•˜๊ณ , ๋ธ”๋กœ๊ทธ ์ง€์ˆ˜๋ฅผ ์ƒ์Šน์‹œํ‚ค๋Š” ๊ฐ€์žฅ ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. 

์ž๋™ํ™”๋œ #์ด์›ƒ์ถ”๊ฐ€, #๋Œ“๊ธ€, #๊ณต๊ฐ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์‹ค์ œ ํ™œ๋™ํ•˜๋Š” ์ด์›ƒ์„ ํ™•๋ณดํ•˜๊ณ , ๋ธ”๋กœ๊ทธ ํ™œ์„ฑ๋„๋ฅผ ๋†’์—ฌ ๋ณด์„ธ์š”. 

๋ธ”๋กœ๊ทธ ์šด์˜ ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์ง€๊ธˆ ๋ฐ”๋กœ ์‹œ์ž‘ํ•ด ๋ณด์„ธ์š”. 

์ง€์†์ ์ธ #์†Œํ†ต ๊ด€๋ฆฌ๋ฅผ ํ†ตํ•ด ๋ธ”๋กœ๊ทธ ์ž ์žฌ๋ ฅ์„ ๊ทน๋Œ€ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

#๋ธ”๋กœ๊ทธ๋งˆ์ผ€ํŒ… #๋ธ”๋กœ๊ทธ์„ฑ์žฅ #๋ธ”๋กœ๊ทธ๊ด€๋ฆฌ #๋„ค์ด๋ฒ„๋ธ”๋กœ๊ทธ

https://ntoppro.luzensoft.com