• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
چرا خطا میده؟( استثناها)
#1
سلام
من این کد رو اجرا میکنم:
کد پی‌اچ‌پی:
<?php
     
    
require_once('class.Demo.php');
     
    
$objDemo= new Demo();
    
$objDemo -> setName('naser');
    
$objDemo -> sayHello();
    
$objDemo -> setName(37);
     
?>
که فایل class.Demo.php هم اینجوریه:
کد پی‌اچ‌پی:
<?php
 
 
class Demo {
    public 
$_name;
    public function 
sayHello(){
        echo 
"Hello".$this -> name."!";
    }
    public function 
getName(){
        return 
$this -> name ;
    }
    public function 
setName($name){
        if(!
is_string($name) || strlen($name)==0) {
            throw new 
Exception("Invalid name value");
        }
    
$this -> name $name;
    }
 }
  
 
?>
ولی این خطا رو بهم نشون میده
Fatal error: Uncaught exception 'Exception' with message 'Invalid name value' in C:\Users\Asman\Downloads\Compressed\xampp-win32-1.7.7-VC9\xampp\htdocs\xampp\naser\class.Demo.php:13 Stack trace: #0 C:\Users\Asman\Downloads\Compressed\xampp-win32-1.7.7-VC9\xampp\htdocs\xampp\naser\testdemo.php(8): Demo->setName(37) #1 {main} thrown in C:\Users\Asman\Downloads\Compressed\xampp-win32-1.7.7-VC9\xampp\htdocs\xampp\naser\class.Demo.php on line 13
کسی میدونه جریان چیه و مشکل کجاست؟
  پاسخ
تشکر شده توسط :
#2
ببینید کلاس Exception همیشه باید همراه try و catch بیاد وگرنه این خطا رو میده. اصلاح شده کد شما:
کد پی‌اچ‌پی:
<?php
 
 
class Demo {
    public 
$_name;
    public function 
sayHello(){
        echo 
"Hello".$this-> name."!";
    }
    public function 
getName(){
        return 
$this-> name ;
    }
    public function 
setName($name){
try
{
        if(!
is_string($name) || strlen($name)==0) {
            throw new 
Exception("Invalid name value");
        }
}
catch(
Exception $e)
{
$e->getMessage();
}
    
$this -> name $name;
    }
 }
  
 
?>
غایب
  پاسخ
تشکر شده توسط : boBak


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان