PHP 5.0Òì³£´¦Àí»úÖÆÉî¶È̽Ë÷(1)
À´Ô´:www.phpres.com ×÷ÕߣºAngelover ³ö´¦£ºwww.phpres.com 2007-8-2 19:14:03 ½øÈëÌÖÂÛ×鹨 ¼ü ´Ê£º
Éî¶È ̽Ë÷ »úÖÆ ´¦Àí Òì³£ Ò»¸ö Exception ´íÎó throw
¡¡¡¡PHP5ÄÚ½¨µÄÒì³£ÀàÐèÒªÓÐÒÔϳÉÔ±·½·¨£º
| __construct() | ¹¹Ô캯Êý£¬ÐèÒªÒ»¸ö³ö´íÐÅÏ¢ºÍÒ»¸ö¿ÉÑ¡µÄÕûÐÍ´íÎó±ê¼Ç×÷²ÎÊý |
| getMessage() | È¡µÃ³ö´íÐÅÏ¢ |
| getCode() |
³ö´íµÄ´úÂë |
| getFile() | Òì³£·¢ÉúµÄÎļþ |
| getLine() | Òì³£·¢ÉúµÄÐÐÊý |
| getTrace() | ¸ú×ÙÒ쳣ÿһ²½´«µÝµÄ·Ïߣ¬´æÈëÊý×飬·µ»Ø¸ÃÊý×é |
| getTraceAsString() | ºÍgetTrace()¹¦ÄÜÒ»Ñù£¬µ«¿ÉÒÔ½«Êý×éÖеÄÔªËØ×ª³É×Ö·û´®²¢°´Ò»¶¨¸ñʽÊä³ö |
¡¡¡¡¿ÉÒÔ¿´³öÀ´£¬Exception ÀàµÄ½á¹¹ºÍPear_Error ºÜÏàËÆ¡£µ±ÄãµÄ½Å±¾ÖÐÓöµ½Ò»¸ö´íÎó£¬Äã¿ÉÒÔ½¨Á¢ÄãµÄÒì³£¶ÔÏó£º
| $ex = new Exception( "Could not open $this-£¾file" ); |
¡¡¡¡ExceptionÀàµÄ¹¹Ô캯Êý½«½ÓÊÜÒ»¸ö³ö´íÐÅÏ¢ºÍÒ»¸ö´íÎó´úÂë¡£
¡¡¡¡Ê¹Óà throw¹Ø¼ü×Ö
¡¡¡¡½¨Á¢Ò»¸öException¶ÔÏóºóÄã¿ÉÒÔ½«¶ÔÏ󷵻أ¬µ«²»Ó¦¸ÃÕâÑùʹÓ㬸üºÃµÄ·½·¨ÊÇÓÃthrow¹Ø¼ü×ÖÀ´´úÌæ¡£throwÓÃÀ´Å׳öÒì³££º
| throw new Exception( "my message", 44 ); |
¡¡¡¡throw ½«½Å±¾µÄÖ´ÐÐÖÐÖ¹£¬²¢Ê¹Ïà¹ØµÄException¶ÔÏó¶Ô¿Í»§´úÂë¿ÉÓá£
¡¡¡¡ÒÔÏÂÊǸĽø¹ýµÄgetCommandObject() ·½·¨£º
¡¡¡¡index_php5.php
| £¼?php // PHP 5 require_once('cmd_php5/Command.php'); class CommandManager { ¡¡private $cmdDir = "cmd_php5"; ¡¡function getCommandObject($cmd) { ¡¡¡¡$path = "{$this-£¾cmdDir}/{$cmd}.php"; ¡¡¡¡if (!file_exists($path)) { ¡¡¡¡¡¡throw new Exception("Cannot find $path"); ¡¡¡¡} ¡¡require_once $path; ¡¡if (!class_exists($cmd)) { ¡¡¡¡throw new Exception("class $cmd does not exist"); ¡¡} ¡¡$class = new ReflectionClass($cmd); ¡¡if (!$class-£¾isSubclassOf(new ReflectionClass('Command'))) { ¡¡¡¡throw new Exception("$cmd is not a Command"); ¡¡} ¡¡return new $cmd(); } } ?£¾ |
¡¡¡¡´úÂëÖÐÎÒÃÇʹÓÃÁËPHP5µÄ·´Éä(Reflection)APIÀ´ÅжÏËù¸øµÄÀàÊÇ·ñÊÇÊôÓÚCommand ÀàÐÍ¡£ÔÚ´íÎóµÄ·¾¶ÏÂÖ´Ðб¾½Å±¾½«»á±¨³öÕâÑùµÄ´íÎó£º
| Fatal error: Uncaught exception 'Exception' with message 'Cannot find command/xrealcommand.php' in /home/xyz/BasicException.php:10 Stack trace: #0 /home/xyz/BasicException.php(26): CommandManager-£¾getCommandObject('xrealcommand') #1 {main} thrown in /home/xyz/BasicException.php on line 10 |
¡¡¡¡Ä¬Èϵأ¬Å׳öÒì³£µ¼ÖÂÒ»¸öfatal error¡£ÕâÒâζ×ÅʹÓÃÒì³£µÄÀàÄÚ½¨Óа²È«»úÖÆ¡£¶ø½ö½öʹÓÃÒ»¸ö´íÎó±ê¼Ç£¬²»ÄÜÓµÓÐÕâÑùµÄ¹¦ÄÜ¡£´¦Àí´íÎó±ê¼Çʧ°ÜÖ»»áÄãµÄ½Å±¾Ê¹ÓôíÎóµÄÖµÀ´¼ÌÐøÖ´ÐС£
¡¡¡¡Try-catch Óï¾ä
¡¡¡¡ÎªÁ˽øÒ»²½´¦ÀíÒì³££¬ÎÒÃÇÐèҪʹÓÃtry-catchÓï¾ä—°üÀ¨TryÓï¾äºÍÖÁÉÙÒ»¸öµÄcatchÓï¾ä¡£Èκε÷Óà ¿ÉÄÜÅ׳öÒì³£µÄ·½·¨µÄ´úÂë¶¼Ó¦¸ÃʹÓÃtryÓï¾ä¡£CatchÓï¾äÓÃÀ´´¦Àí¿ÉÄÜÅ׳öµÄÒì³£¡£ÒÔÏÂÏÔʾÁËÎÒÃÇ´¦ÀígetCommandObject()Å׳öµÄÒì³£µÄ·½·¨£º
¡¡¡¡index_php5.php ºó°ë¶Î
| £¼?php // PHP 5 try { ¡¡$mgr = new CommandManager(); ¡¡$cmd = $mgr-£¾getCommandObject('realcommand'); ¡¡$cmd-£¾execute(); } catch (Exception $e) { ¡¡print $e-£¾getMessage(); ¡¡exit(); } ?£¾ |
¡¡¡¡¿ÉÒÔ¿´µ½£¬Í¨¹ý½áºÏʹÓÃthrow¹Ø¼ü×ÖºÍtry-catchÓï¾ä£¬ÎÒÃÇ¿ÉÒÔ±ÜÃâ´íÎó±ê¼Ç“ÎÛȾ”Àà·½·¨·µ»ØµÄÖµ¡£ÒòΪ“Òì³£”±¾Éí¾ÍÊÇÒ»ÖÖÓëÆäËüÈκζÔÏó²»Í¬µÄPHPÄÚ½¨µÄÀàÐÍ£¬²»»á²úÉú»ìÏý¡£
¡¡¡¡Èç¹ûÅ׳öÁËÒ»¸öÒì³££¬tryÓï¾äÖеĽű¾½«»áÍ£Ö¹Ö´ÐУ¬È»ºóÂíÉÏתÏòÖ´ÐÐcatchÓï¾äÖеĽű¾¡£
¡¡¡¡Èç¹ûÒì³£Å׳öÁËȴûÓб»²¶×½µ½£¬¾Í»á²úÉúÒ»¸öfatal error¡£
»¶Ó½øÈëPHP¿ª·¢×ÊÔ´ÂÛ̳ÌÖÂÛ¡£
Ïà¹ØÎÄÕÂ
ͼÎÄÍÆ¼ö
ÂÛ Ì³ ×Ê Ô´
¡¤ÓÃPHPÏÔʾͼƬµÄEXIFÐÅÏ¢
¡¤ÏÔʾÊýÂëͼƬµÄEXIFÐÅÏ¢ Discuz²å¼þForDisc
¡¤ÔÚPHPÖÐcookieºÍsessionµÄʹÓÃ×ܽá
¡¤ÄĸöCMS±È½ÏºÃÓÃ-Mambo³öÇÊ£¬ËÓëÕù·æ£¿
¡¤ÔÚPHPÖÐʹÓÃHeader()º¯Êý½éÉÜ
¡¤ÓÃPHPʵÏÖJSµÄescapeºÍunescapeº¯Êý¹¦ÄÜ
¡¤Cute Editor for PHP 6.0©¤ Ò»‚€ËùÒŠ¼´ËùµÃ
¡¤Ã¿Ò»‚€ PHP é_°lÕß¶¼‘ªÔ“ÕJ×RµÄÊ®‚€é_°lí—
¡¤ÕûÀíµÄDiscuz³ÌÐòÎļþĿ¼º¬Òå±í
¡¤Ê¹ÓÃPHPαÔìsessionid×ö·Àˢй¦ÄÜ
¡¤ÏÔʾÊýÂëͼƬµÄEXIFÐÅÏ¢ Discuz²å¼þForDisc
¡¤ÔÚPHPÖÐcookieºÍsessionµÄʹÓÃ×ܽá
¡¤ÄĸöCMS±È½ÏºÃÓÃ-Mambo³öÇÊ£¬ËÓëÕù·æ£¿
¡¤ÔÚPHPÖÐʹÓÃHeader()º¯Êý½éÉÜ
¡¤ÓÃPHPʵÏÖJSµÄescapeºÍunescapeº¯Êý¹¦ÄÜ
¡¤Cute Editor for PHP 6.0©¤ Ò»‚€ËùÒŠ¼´ËùµÃ
¡¤Ã¿Ò»‚€ PHP é_°lÕß¶¼‘ªÔ“ÕJ×RµÄÊ®‚€é_°lí—
¡¤ÕûÀíµÄDiscuz³ÌÐòÎļþĿ¼º¬Òå±í
¡¤Ê¹ÓÃPHPαÔìsessionid×ö·Àˢй¦ÄÜ
ÈÈÃż¼ÊõÎĵµ
¡¤¹úÍâÖ÷Á÷PHP¿ò¼ÜÆÀ²â
¡¤ÓÃPHPÏÔʾͼƬµÄEXIFÐÅÏ¢
¡¤ÏÔʾÊýÂëͼƬµÄEXIFÐÅÏ¢ Discuz²å¼þForDisc
¡¤ÔÚPHPÖÐcookieºÍsessionµÄʹÓÃ×ܽá
¡¤ÄĸöCMS±È½ÏºÃÓÃ-Mambo³öÇÊ£¬ËÓëÕù·æ£¿
¡¤ÔÚPHPÖÐʹÓÃHeader()º¯Êý½éÉÜ
¡¤ÓÃPHPʵÏÖJSµÄescapeºÍunescapeº¯Êý¹¦ÄÜ
¡¤Cute Editor for PHP 6.0©¤ Ò»‚€ËùÒŠ¼´ËùµÃ
¡¤Ã¿Ò»‚€ PHP é_°lÕß¶¼‘ªÔ“ÕJ×RµÄÊ®‚€é_°lí—
¡¤ÕûÀíµÄDiscuz³ÌÐòÎļþĿ¼º¬Òå±í
¡¤ÓÃPHPÏÔʾͼƬµÄEXIFÐÅÏ¢
¡¤ÏÔʾÊýÂëͼƬµÄEXIFÐÅÏ¢ Discuz²å¼þForDisc
¡¤ÔÚPHPÖÐcookieºÍsessionµÄʹÓÃ×ܽá
¡¤ÄĸöCMS±È½ÏºÃÓÃ-Mambo³öÇÊ£¬ËÓëÕù·æ£¿
¡¤ÔÚPHPÖÐʹÓÃHeader()º¯Êý½éÉÜ
¡¤ÓÃPHPʵÏÖJSµÄescapeºÍunescapeº¯Êý¹¦ÄÜ
¡¤Cute Editor for PHP 6.0©¤ Ò»‚€ËùÒŠ¼´ËùµÃ
¡¤Ã¿Ò»‚€ PHP é_°lÕß¶¼‘ªÔ“ÕJ×RµÄÊ®‚€é_°lí—
¡¤ÕûÀíµÄDiscuz³ÌÐòÎļþĿ¼º¬Òå±í
×îÐÂͼÎĵµ
±¾Õ¾±à¼ÍƼö:(±¾Õ¾¿ªÍ¨Delphi4PHP×¨Çø£¬»¶Ó½øÈëÂÛ̳½»Á÷£¡)
- ¡¤ 3·ÖÖÓ¿ìËÙÁ˽â Delphi for PHP ÌØÉ« (ÖÐÎÄ), PDFµµ
- ¡¤ ¹ºÂòDelphi for PHPµÄÎå´óÀíÓÉ, PDFµµ
- ¡¤ Delphi for PHP ʹÓùæ¸ñ½éÉÜ, PDFµµ
- ¡¤ Delphi for PHP †–´ð¼¯ (From CodeGear)
- ¡¤ Delphi for PHP ²úÆ·¼Û¸ñ±í
±à¼©×î½ü¸üÐÂÎÄÕÂ
ÍøÕ¾ÔÞÖúÉÌ
ËÑË÷Äú¸ÐÐËȤµÄÄÚÈÝ




