<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/langref.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'tr',
  ),
  'this' => 
  array (
    0 => 'language.exceptions.php',
    1 => 'İstisnalar',
    2 => 'İstisnalar',
  ),
  'up' => 
  array (
    0 => 'langref.php',
    1 => 'Dil Başvuru Kılavuzu',
  ),
  'prev' => 
  array (
    0 => 'language.errors.php7.php',
    1 => 'PHP 7\'de hatalar',
  ),
  'next' => 
  array (
    0 => 'language.exceptions.extending.php',
    1 => 'İstisnaları Genişletmek',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'tr',
    'path' => 'language/exceptions.xml',
  ),
  'history' => 
  array (
  ),
  'extra_header_links' => 
  array (
    'rel' => 'alternate',
    'href' => '/manual/en/feeds/language.exceptions.atom',
    'type' => 'application/atom+xml',
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="language.exceptions" class="chapter">
 <h1 class="title">İstisnalar</h1>
<h2>İçindekiler</h2><ul class="chunklist chunklist_chapter"><li><a href="language.exceptions.extending.php">İstisnaları Genişletmek</a></li></ul>

 <p class="para">
  PHP diğer programlama dillerindekine benzer bir istisna modeline
  sahiptir. Bir istisna oluşturulabilir (<a href="language.exceptions.php" class="link"><code class="literal">throw</code></a>) ve yakalanabilir (<a href="language.exceptions.php#language.exceptions.catch" class="link"><code class="literal">catch</code></a>).
  Olası istisnaların yakalanabilmesi için, kod bir <a href="language.exceptions.php" class="link"><code class="literal">try</code></a> bloğu içine
  alınabilir. Her <a href="language.exceptions.php" class="link"><code class="literal">try</code></a> bloğuna karşılık en az bir tane <a href="language.exceptions.php#language.exceptions.catch" class="link"><code class="literal">catch</code></a> veya
  <a href="language.exceptions.php#language.exceptions.finally" class="link"><code class="literal">finally</code></a> bloğu olması gerekir.
 </p>
 <p class="para">
  Bir istisna oluşturulursa ve geçerli işlev bağlamında <a href="language.exceptions.php#language.exceptions.catch" class="link"><code class="literal">catch</code></a> bloğu yoksa,
  istisna, eşleşen bir <a href="language.exceptions.php#language.exceptions.catch" class="link"><code class="literal">catch</code></a> bloğu bulana kadar çağrı yığıtını çağıran
  işleve &quot;kabarcıklandırır&quot;. Yol boyunca karşılaşılan tüm <a href="language.exceptions.php#language.exceptions.finally" class="link"><code class="literal">finally</code></a> blokları
  çalıştırılır. Eğer çağrı yığıtı, eşleşen bir <a href="language.exceptions.php#language.exceptions.catch" class="link"><code class="literal">catch</code></a> bloğu bulamadan
  küresel bağlama kadar boşalırsa ve bir küresel istisna işleyici de
  atanmamışsa, ölümcül hata vererek sonlanır.
 </p>
 <p class="para">
  Oluşturulan nesne ya bir <span class="interfacename"><a href="class.throwable.php" class="interfacename">Throwable</a></span> örneği
  olmalıdır. Bunu sağlamayan bir nesne oluşturmaya çalışmak (<a href="language.exceptions.php" class="link"><code class="literal">throw</code></a>)
  ölümcül bir PHP hatasına yol açmaz.
 </p>
 <p class="para">
  PHP 8.0.0 ve sonrasında,  <a href="language.exceptions.php" class="link"><code class="literal">throw</code></a> sözcüğü bir ifade olup herhangi bir
  ifadenin içinde kullanılabilir. Önceki sürümlerde bir deyimdi ve kendi
  satırına sahip olması gerekiyordu.
 </p>

 <div id="language.exceptions.catch" class="sect1">
  <h2 class="title"><code class="literal">catch</code></h2>
  <p class="para">
   Bir <a href="language.exceptions.php#language.exceptions.catch" class="link"><code class="literal">catch</code></a> bloğu oluşturulan bir istisnaya nasıl yanıt verileceğini
   tanımlar. Bir <a href="language.exceptions.php#language.exceptions.catch" class="link"><code class="literal">catch</code></a> bloğu işleyebileceği bir veya daha fazla istisna
   veya hata türünü ve isteğe bağlı olarak istisnanın atanacağı değişkeni
   tanımlar. (PHP 8.0.0 öncesinde değişken gerekliydi.) İlk <a href="language.exceptions.php#language.exceptions.catch" class="link"><code class="literal">catch</code></a> bloğu,
   nesneyi işleyecek <a href="language.exceptions.php" class="link"><code class="literal">throw</code></a> nesnesinin türüyle eşleşen bir hata veya
   istisnayla karşılaştığında bunları engelleyecektir.
  </p>
  <p class="para">
   Farklı sınıflara ait istisnaları yakalamak için birden fazla <a href="language.exceptions.php#language.exceptions.catch" class="link"><code class="literal">catch</code></a> bloğu
   kullanılabilir. Normal çalışma sıradaki son <a href="language.exceptions.php#language.exceptions.catch" class="link"><code class="literal">catch</code></a> bloğundan sonra devam
   eder. Buradaki normal çalışma (<a href="language.exceptions.php" class="link"><code class="literal">try</code></a> bloğu içinde hiçbir istisna
   oluşmadığında) sıradaki tanımlanmış son <a href="language.exceptions.php#language.exceptions.catch" class="link"><code class="literal">catch</code></a> bloğundan sora devam eder.
   İstisnalar bir <a href="language.exceptions.php#language.exceptions.catch" class="link"><code class="literal">catch</code></a> bloğu içerisinde oluşmuş olabileceği gibi yeniden
   de oluşabilir (<a href="language.exceptions.php" class="link"><code class="literal">throw</code></a>). Aksi takdirde, çalışma, tetiklenen <a href="language.exceptions.php#language.exceptions.catch" class="link"><code class="literal">catch</code></a>
   bloğundan sonra devam eder.
  </p>
  <p class="para">
   Bir istisna oluştuğunda, istisnanın oluştuğu yerden sonraki kodlar
   çalıştırılmaz ve PHP oluşan istisna ile uyuşan ilk <a href="language.exceptions.php#language.exceptions.catch" class="link"><code class="literal">catch</code></a>
   bloğunu bulmaya çalışır. Bir istisnanın yakalanmaması durumunda,
   <span class="function"><a href="function.set-exception-handler.php" class="function">set_exception_handler()</a></span> işlevi ile evvelce bir istisna
   eylemcisi tanımlanmamışsa, PHP bir ölümcül hata durumu oluşturur ve bir
   &quot;<code class="literal">Uncaught Exception ...</code>&quot; (&quot;Yakalanmamış istisna ...&quot;)
   iletisi çıktılar.
  </p>
  <p class="para">
   PHP 7.1.0 ve sonrasında, boru (<code class="literal">|</code>) karakteri kullanarak
   bir <a href="language.exceptions.php#language.exceptions.catch" class="link"><code class="literal">catch</code></a> bloğunda çok sayıda istisna belirtilebilir. Farklı sınıf
   hiyerarşilerindeki farklı istisnalar aynı şekilde elde edildiğinde
   kullanışlıdır.
  </p>
  <p class="para">
   PHP 8.0.0 ve sonrasında, değişken ismi yakalama istisnası için isteğe
   bağlıdır. Belirtilmezse, <a href="language.exceptions.php#language.exceptions.catch" class="link"><code class="literal">catch</code></a> bloğu çalışmaya yine de devam eder fakat
   istisnayı oluşturacak nesneye erişemez.
  </p>
 </div>

 <div id="language.exceptions.finally" class="sect1">
  <h2 class="title"><code class="literal">finally</code></h2>
  <p class="para">
   <a href="language.exceptions.php#language.exceptions.catch" class="link"><code class="literal">catch</code></a> bloklarının yerine veya sonrasında bir
   <a href="language.exceptions.php#language.exceptions.finally" class="link"><code class="literal">finally</code></a> bloğu da belirtilebilir. Bir istisnanın oluşmamışsa bile ve
   normal çalışmaya dönülmeden önce <a href="language.exceptions.php#language.exceptions.finally" class="link"><code class="literal">finally</code></a> bloğu içindeki kodlar daima
   <a href="language.exceptions.php" class="link"><code class="literal">try</code></a> ve <a href="language.exceptions.php#language.exceptions.catch" class="link"><code class="literal">catch</code></a> bloklarından sonra çalıştırılır.
  </p>
  <p class="para">
   Dikkate değer tek etkileşim, <a href="language.exceptions.php#language.exceptions.finally" class="link"><code class="literal">finally</code></a> bloğu ile <a href="function.return.php" class="link"><code class="literal">return</code></a> deyimi arasında
   olur. <a href="language.exceptions.php" class="link"><code class="literal">try</code></a> veya <a href="language.exceptions.php#language.exceptions.catch" class="link"><code class="literal">catch</code></a> bloklarının içinde bir <a href="function.return.php" class="link"><code class="literal">return</code></a> deyimine
   rastlansa bile <a href="language.exceptions.php#language.exceptions.finally" class="link"><code class="literal">finally</code></a> bloğu çalışmasına devam edeceği gibi, <a href="function.return.php" class="link"><code class="literal">return</code></a>
   deyimi de çalıştırılır fakat <a href="language.exceptions.php#language.exceptions.finally" class="link"><code class="literal">finally</code></a> bloğu işini bitirdikten sonra sonuç
   döndürülür. Ek olarak, <a href="language.exceptions.php#language.exceptions.finally" class="link"><code class="literal">finally</code></a> bloğu da bir <a href="function.return.php" class="link"><code class="literal">return</code></a> içeriyorsa
   <a href="language.exceptions.php#language.exceptions.finally" class="link"><code class="literal">finally</code></a> bloğundaki değer döndürülür.
  </p>
 </div>

 <div id="language.exceptions.exception-handler" class="sect1">
  <h2 class="title">Küresel istisna işleyici</h2>
  <p class="para">
   Eğer bir istisnanın küresel bağlama kadar kabarcıklanmasına izin verilirse,
   atandığı takdirde bir küresel istisna işleyici tarafından yakalanabilir.
   Başka bir blok çalıştırılmazsa bir <a href="language.exceptions.php#language.exceptions.catch" class="link"><code class="literal">catch</code></a> bloğu yerine çağrılmak üzere bir
   işlev <span class="function"><a href="function.set-exception-handler.php" class="function">set_exception_handler()</a></span> işlevi ile atanabilir.
   Etkisi esasen, tüm programın,  <a href="language.exceptions.php#language.exceptions.catch" class="link"><code class="literal">catch</code></a> olarak bu işleve sahip bir <a href="language.exceptions.php" class="link"><code class="literal">try</code></a>-
   <a href="language.exceptions.php#language.exceptions.catch" class="link"><code class="literal">catch</code></a> bloğu ile sarmalanmasıyla aynıdır.
  </p>
 </div>

 <div id="language.exceptions.notes" class="sect1">
  <h2 class="title">Notlar</h2>
  <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
   <p class="para">
     Yerleşik PHP işlevleri aslında <a href="errorfunc.configuration.php#ini.error-reporting" class="link">hata
     raporlama</a> yapmakta, istisnaları sadece <a href="language.oop5.php" class="link">nesne yönelimli</a> güncel eklentiler
     kullanmaktadır. Bununla birlikte hatalar <a href="class.errorexception.php" class="link">ErrorException</a> ile kolayca
     istisnalara dönüştürülebilir. Bununla birlikte, bu teknik sadece ölümcül
     hatalarda çalışır.
   </p>
   <div class="example" id="example-1">
    <p><strong>Örnek 1 - Hata raporlamayı istisnalara dönüştürme örneği</strong></p>
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">function </span><span style="color: #0000BB">exceptions_error_handler</span><span style="color: #007700">(</span><span style="color: #0000BB">$severity</span><span style="color: #007700">, </span><span style="color: #0000BB">$message</span><span style="color: #007700">, </span><span style="color: #0000BB">$filename</span><span style="color: #007700">, </span><span style="color: #0000BB">$lineno</span><span style="color: #007700">) {<br />    throw new </span><span style="color: #0000BB">ErrorException</span><span style="color: #007700">(</span><span style="color: #0000BB">$message</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">$severity</span><span style="color: #007700">, </span><span style="color: #0000BB">$filename</span><span style="color: #007700">, </span><span style="color: #0000BB">$lineno</span><span style="color: #007700">);<br />}<br /><br /></span><span style="color: #0000BB">set_error_handler</span><span style="color: #007700">(</span><span style="color: #DD0000">'exceptions_error_handler'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p></blockquote>
  <div class="tip"><strong class="tip">İpucu</strong>
   <p class="para">
    <a href="book.spl.php#intro.spl" class="link">Standard PHP Kütüphanesi (SPL)</a> bol bol
    yerleşik istisna içerir.
   </p>
  </div>
 </div>

 <div id="language.exceptions.examples" class="sect1">
  <h2 class="title">Örnekler</h2>
  <div class="example" id="example-2">
   <p><strong>Örnek 2 - Bir İstisna Oluşturmak</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">function </span><span style="color: #0000BB">inverse</span><span style="color: #007700">(</span><span style="color: #0000BB">$x</span><span style="color: #007700">) {<br />    if (!</span><span style="color: #0000BB">$x</span><span style="color: #007700">) {<br />        throw new </span><span style="color: #0000BB">Exception</span><span style="color: #007700">(</span><span style="color: #DD0000">'Sıfıra bölme.'</span><span style="color: #007700">);<br />    }<br />    else return </span><span style="color: #0000BB">1</span><span style="color: #007700">/</span><span style="color: #0000BB">$x</span><span style="color: #007700">;<br />}<br /><br />try {<br />    echo </span><span style="color: #0000BB">inverse</span><span style="color: #007700">(</span><span style="color: #0000BB">5</span><span style="color: #007700">) . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />    echo </span><span style="color: #0000BB">inverse</span><span style="color: #007700">(</span><span style="color: #0000BB">0</span><span style="color: #007700">) . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />} catch (</span><span style="color: #0000BB">Exception $e</span><span style="color: #007700">) {<br />    echo </span><span style="color: #DD0000">'Yakalanan olağandışılık: '</span><span style="color: #007700">,  </span><span style="color: #0000BB">$e</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getMessage</span><span style="color: #007700">(), </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #FF8000">// Çalışma sürer<br /></span><span style="color: #007700">echo </span><span style="color: #DD0000">'Merhaba Dünya'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

   <div class="example-contents"><p>
Yukarıdaki örneğin çıktısı:</p></div>
   <div class="example-contents screen">
<div class="cdata"><pre>
0.2
Yakalanan olağandışılık: Sıfıra bölme.
Merhaba Dünya
</pre></div>
   </div>
  </div>

  <div class="example" id="example-3">
   <p><strong>Örnek 3 - Bir <a href="language.exceptions.php#language.exceptions.finally" class="link"><code class="literal">finally</code></a> bloğu ile istisnanın işleme sokulması</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">function </span><span style="color: #0000BB">inverse</span><span style="color: #007700">(</span><span style="color: #0000BB">$x</span><span style="color: #007700">) {<br />    if (!</span><span style="color: #0000BB">$x</span><span style="color: #007700">) {<br />        throw new </span><span style="color: #0000BB">Exception</span><span style="color: #007700">(</span><span style="color: #DD0000">'Sıfıra bölme.'</span><span style="color: #007700">);<br />    }<br />    return </span><span style="color: #0000BB">1</span><span style="color: #007700">/</span><span style="color: #0000BB">$x</span><span style="color: #007700">;<br />}<br /><br />try {<br />    echo </span><span style="color: #0000BB">inverse</span><span style="color: #007700">(</span><span style="color: #0000BB">5</span><span style="color: #007700">) . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />} catch (</span><span style="color: #0000BB">Exception $e</span><span style="color: #007700">) {<br />    echo </span><span style="color: #DD0000">'İstisna yakalandı: '</span><span style="color: #007700">,  </span><span style="color: #0000BB">$e</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getMessage</span><span style="color: #007700">(), </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />} finally {<br />    echo </span><span style="color: #DD0000">"İlk finally bloğu.\n"</span><span style="color: #007700">;<br />}<br /><br />try {<br />    echo </span><span style="color: #0000BB">inverse</span><span style="color: #007700">(</span><span style="color: #0000BB">0</span><span style="color: #007700">) . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />} catch (</span><span style="color: #0000BB">Exception $e</span><span style="color: #007700">) {<br />    echo </span><span style="color: #DD0000">'İstisna yakalandı: '</span><span style="color: #007700">,  </span><span style="color: #0000BB">$e</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getMessage</span><span style="color: #007700">(), </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />} finally {<br />    echo </span><span style="color: #DD0000">"İkinci finally bloğu.\n"</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #FF8000">// İcra sürer<br /></span><span style="color: #007700">echo </span><span style="color: #DD0000">"Merhaba Dünya\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

   <div class="example-contents"><p>
Yukarıdaki örneğin çıktısı:</p></div>
   <div class="example-contents screen">
<div class="cdata"><pre>
0.2
İlk finally bloğu.
İstisna yakalandı: Sıfıra bölme..
İkinci finally bloğu.
Merhaba Dünya
</pre></div>
   </div>
  </div>
  <div class="example" id="example-4">
   <p><strong>Örnek 4 - <a href="language.exceptions.php#language.exceptions.finally" class="link"><code class="literal">finally</code></a> bloğu ile <a href="function.return.php" class="link"><code class="literal">return</code></a> arasındaki etkileşim örneği</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #007700">function </span><span style="color: #0000BB">test</span><span style="color: #007700">() {<br />    try {<br />        throw new </span><span style="color: #0000BB">Exception</span><span style="color: #007700">(</span><span style="color: #DD0000">'foo'</span><span style="color: #007700">);<br />    } catch (</span><span style="color: #0000BB">Exception $e</span><span style="color: #007700">) {<br />        return </span><span style="color: #DD0000">'catch'</span><span style="color: #007700">;<br />    } finally {<br />        return </span><span style="color: #DD0000">'finally'</span><span style="color: #007700">;<br />    }<br />}<br /><br />echo </span><span style="color: #0000BB">test</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

   <div class="example-contents"><p>
Yukarıdaki örneğin çıktısı:</p></div>
   <div class="example-contents screen">
<div class="cdata"><pre>
finally
</pre></div>
   </div>
  </div>
  <div class="example" id="example-5">
   <p><strong>Örnek 5 - İç içe istisnalar</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #007700">class </span><span style="color: #0000BB">MyException </span><span style="color: #007700">extends </span><span style="color: #0000BB">Exception </span><span style="color: #007700">{ }<br /><br />class </span><span style="color: #0000BB">Test </span><span style="color: #007700">{<br />    public function </span><span style="color: #0000BB">testing</span><span style="color: #007700">() {<br />        try {<br />            try {<br />                throw new </span><span style="color: #0000BB">MyException</span><span style="color: #007700">(</span><span style="color: #DD0000">'foo!'</span><span style="color: #007700">);<br />            } catch (</span><span style="color: #0000BB">MyException $e</span><span style="color: #007700">) {<br />                </span><span style="color: #FF8000">/* yeniden yakala */<br />                </span><span style="color: #007700">throw </span><span style="color: #0000BB">$e</span><span style="color: #007700">;<br />            }<br />        } catch (</span><span style="color: #0000BB">Exception $e</span><span style="color: #007700">) {<br />            </span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$e</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getMessage</span><span style="color: #007700">());<br />        }<br />    }<br />}<br /><br /></span><span style="color: #0000BB">$foo </span><span style="color: #007700">= new </span><span style="color: #0000BB">Test</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$foo</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">testing</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

   <div class="example-contents"><p>
Yukarıdaki örneğin çıktısı:</p></div>
   <div class="example-contents screen">
<div class="cdata"><pre>
string(4) &quot;foo!&quot;
</pre></div>
   </div>
  </div>
  <div class="example" id="example-6">
   <p><strong>Örnek 6 Çoklu catch istisna eldesi</strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #007700">class </span><span style="color: #0000BB">MyException </span><span style="color: #007700">extends </span><span style="color: #0000BB">Exception </span><span style="color: #007700">{ }<br /><br />class </span><span style="color: #0000BB">MyOtherException </span><span style="color: #007700">extends </span><span style="color: #0000BB">Exception </span><span style="color: #007700">{ }<br /><br />class </span><span style="color: #0000BB">Test </span><span style="color: #007700">{<br />    public function </span><span style="color: #0000BB">testing</span><span style="color: #007700">() {<br />        try {<br />            throw new </span><span style="color: #0000BB">MyException</span><span style="color: #007700">();<br />        } catch (</span><span style="color: #0000BB">MyException </span><span style="color: #007700">| </span><span style="color: #0000BB">MyOtherException $e</span><span style="color: #007700">) {<br />            </span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">get_class</span><span style="color: #007700">(</span><span style="color: #0000BB">$e</span><span style="color: #007700">));<br />        }<br />    }<br />}<br /><br /></span><span style="color: #0000BB">$foo </span><span style="color: #007700">= new </span><span style="color: #0000BB">Test</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$foo</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">testing</span><span style="color: #007700">();<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

   <div class="example-contents"><p>
Yukarıdaki örneğin çıktısı:</p></div>
   <div class="example-contents screen">
<div class="cdata"><pre>
string(11) &quot;MyException&quot;
</pre></div>
   </div>
  </div>
  <div class="example" id="example-7">
   <p><strong>Örnek 7 - Yakalama değişkeninin olmayışı</strong></p>
   <div class="example-contents"><p>Sadece PHP 8.0.0 ve sonrası için geçerlidir.</p></div>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #007700">class </span><span style="color: #0000BB">Özelİstisna </span><span style="color: #007700">extends </span><span style="color: #0000BB">Exception </span><span style="color: #007700">{}<br /><br />function </span><span style="color: #0000BB">test</span><span style="color: #007700">() {<br />    throw new </span><span style="color: #0000BB">Özelİstisna</span><span style="color: #007700">(</span><span style="color: #DD0000">'Oopsie'</span><span style="color: #007700">);<br />}<br /><br />try {<br />    </span><span style="color: #0000BB">test</span><span style="color: #007700">();<br />} catch (</span><span style="color: #0000BB">Özelİstisna</span><span style="color: #007700">) {<br />    print </span><span style="color: #DD0000">"Bir Özelİstisna oluştu, fakat ayrıntılar önemsiz."</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
  <div class="example" id="example-8">
   <p><strong>Örnek 8 - Bir ifade olarak throw</strong></p>
   <div class="example-contents"><p>Sadece PHP 8.0.0 ve sonrası için geçerlidir.</p></div>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br /></span><span style="color: #007700">function </span><span style="color: #0000BB">test</span><span style="color: #007700">() {<br />    </span><span style="color: #0000BB">do_something_risky</span><span style="color: #007700">() or throw new </span><span style="color: #0000BB">Exception</span><span style="color: #007700">(</span><span style="color: #DD0000">'Çalışmadı...'</span><span style="color: #007700">);<br />}<br /><br />try {<br />    </span><span style="color: #0000BB">test</span><span style="color: #007700">();<br />} catch (</span><span style="color: #0000BB">Exception $e</span><span style="color: #007700">) {<br />    print </span><span style="color: #0000BB">$e</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getMessage</span><span style="color: #007700">();<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </div>

 

 </div>
<?php manual_footer($setup); ?>