рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореИрдВрдиреЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдЪреБрдирд╛ рдФрд░ рдПрдХ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд░реАрдореЗрдХ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдЗрд╕ рдХреЙрдХрдЯреЗрд▓ рд╕реЗ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рдЬрдиреНрдо рд╣реБрдЖ рдЬрд┐рд╕реЗ рдореИрдВ рдЬрдирддрд╛ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдореБрдЭреЗ рддреБрд░рдВрдд рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдЕрдкрд╡рд╛рдж рд╣реИ! = рддреНрд░реБрдЯрд┐ред рд░рд┐рд╕реЗрдкреНрд╢рди рдПрдХ рдЕрд╕рд╛рдзрд╛рд░рдг рд╕реНрдерд┐рддрд┐ рд╣реИ, рдХрд╛рд░реНрдпрдХреНрд░рдо рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдореБрдЦреНрдп рд╢рд╛рдЦрд╛ рд╕реЗ рд╡рд┐рдЪрд▓рди рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рд░реБрдЪрд┐ рд╣реЛрдЧреА, рдЬрд┐рд╕реЗ рдпрд╛ рддреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдмрд╛рдзрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рд╕реЗ рдкрд╣рд▓реЗ рдХреБрдЫ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╣рдореЗрдВ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреА рдЬрдм рдХреЛрдб рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рднрд╛рдЧ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдХрдИ рд╡рд┐рд╢реЗрд╖ рдЕрдкрд╡рд╛рдж рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрдкрдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдЕрдкрд╡рд╛рдж рдХрд╛рд░реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрдбрд╝рд╛рдИ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдирд┐рд╖реНрдкрд╛рджрди рдЕрд╕рд╛рдзрд╛рд░рдг рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдХреЛрдб рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЛ рдлреЗрдВрдХрддрд╛ рд╣реИ, рдЗрд╕рдореЗрдВ рдШрдЯрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрд▓рдЧреНрди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХреЛрдб рдХрд╛ рджреВрд╕рд░рд╛ рднрд╛рдЧ рдЕрдкрд╡рд╛рдж рдХреЛ рдкрдХрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЕрдкрд╡рд╛рджреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХрд┐рд╕рдиреЗ рдХрд╣рд╛ рдХрд┐ рдпрд╣ рд╕рдм рд╡реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдЪрд▓рд┐рдП рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВред
рдЖрдорддреМрд░ рдкрд░, рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
class a { public function mytest() { try { code_which_throw_exception(); } catch(myExceptionType1 $e) { myException1Catcher(); } catch(myExceptionType2 $e) { myException1Catcher(); } ... } }
рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВ, рдореБрдЭреЗ рдмрддрд╛рдУ, рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдЕрдкрд╡рд╛рдж рдПрдХ "рдореВрдХ", рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╡рд╕реНрддреБ рд╣реИрдВ? рдЪрд▓реЛ рдЙрд╕реЗ рдереЛрдбрд╝рд╛ рдФрд░ рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рджреЗрдВ! рдЪреВрдВрдХрд┐ рдпрд╣ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ, рдпрд╣ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд▓реЙрдЬрд┐рдХ рдХреЛ рдЕрддрд┐рдХреНрд░рдордг рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдЪрд▓рд┐рдП рд╣рдорд╛рд░реЗ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ
catchException()
рдЕрдкрд╡рд╛рдж
catchException()
рдкрджреНрдзрддрд┐ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдХреНрд░рдорд╢рдГ рддрд░реНрдХ
myException1Catcher()
рдФрд░
myException2Catcher()
рд╣реИрдВред рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рд▓рд┐рдП, рд╣рдо, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЙрд▓рд┐рдВрдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдлрд┐рд░ рд╣рдорд╛рд░рд╛ рдХреЛрдб рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛:
class a { public function mytest() { try { code_witch_throw_exception(); } catch(myException $e) { $e->catchException($this); } } }
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЙрд▓рд┐рдВрдЧ рдХреНрд▓рд╛рд╕ рдХрд╛ рдХреЛрдб рдереЛрдбрд╝рд╛ рдХрдо рд╣реЛ рдЧрдпрд╛ рд╣реИред рдХреНрдпрд╛ рдЙрд╕реЗ рдХреЛрдИ рдмреЗрд╣рддрд░ рдорд┐рд▓рд╛? рдпрд╣ рд╕реНрдерд┐рддрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред
рдЬрдм рдпрд╣ рд╡рд┐рдзрд┐ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреА рд╣реИ
рдпрджрд┐ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдкрд╡рд╛рджреЛрдВ рдХреА рдкрд░реНрдпрд╛рдкреНрдд рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдЙрддреНрдкрдиреНрди рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рддреЛ рд╡рд┐рдзрд┐ рдХрд╛рдлреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдПрдХ рдЕрдиреНрдп рд╕реНрдерд┐рддрд┐ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рддрдХрдиреАрдХ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд▓рд╛рдЧреВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд░рд┐рд╕реЗрдкреНрд╢рди рдХреЙрд▓ рдЪреЗрди рд╕реЗ рдЧреБрдЬрд░реЗрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдореЗрдВ рдХреБрдЫ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░реЗрдВред рдлрд┐рд░ рдХреИрдЪ рдмреНрд▓реЙрдХ рдореЗрдВ, рдЖрдк рдЕрдкрд╡рд╛рдж рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рдХрд╣рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдлреЗрдВрдХ рджреЗрддреЗ рд╣реИрдВред
рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЗ рдХреНрдпрд╛ рд▓рд╛рдн рд╣реИрдВ?
рдЕрдкрд╡рд╛рдж рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рд╡рд╛рд▓реА рд╡рд╕реНрддреБ рдХреЛ рдЗрд╕рдХреЗ рд╕рдЯреАрдХ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдЪрд┐рдд рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП, рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реНрддрд░ рдкрд░ рд╕рдВрдЧрддрддрд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
рд░рд┐рд╕реЗрдкреНрд╢рдирд┐рд╕реНрдЯ, рдмрджрд▓реЗ рдореЗрдВ, рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрд┐рд╕ рд╡рд┐рд╢реЗрд╖ рд╡рд╕реНрддреБ рдиреЗ рдЙрд╕реЗ рдкрдХрдбрд╝рд╛:
$this
рд▓рд┐рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдкрд░, рд╡рд╣ рдкрдХрдбрд╝реЗ рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░, рддрджрдиреБрд╕рд╛рд░, рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реНрддрд░ рдкрд░ рднреА рд╕рдВрдЧрддрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдбреЗрдЯрд╛ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд░ рдХреЗ рднреАрддрд░ рдпрд╣ рд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝реЗрдЧрд╛ рдФрд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдВрдХрдбрд╝реЗ рд░рдЦреЗрдВ рдпрд╛ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рднреА рдмрджрд▓ рджреЗрдВред