PHP Eğitimi

PHP ANA SAYFA PHP'ye Giriş PHP Kurulumu PHP Sözdizimi PHP Yorumları PHP Değişkenleri PHP Yankı / Yazdır PHP Veri Türleri PHP Dizeleri PHP Numaraları PHP Matematik PHP Sabitleri PHP Operatörleri PHP If...Else...Elseif PHP Anahtarı PHP Döngüleri PHP Fonksiyonları PHP Dizileri PHP Süper Küreseller PHP Normal İfade

PHP Formları

PHP Form İşleme PHP Form Doğrulama PHP Formu Gerekli PHP Formu URL/E-posta PHP Formu Tamamlandı

PHP Gelişmiş

PHP Tarih ve Saat PHP Dahil PHP Dosya İşleme PHP Dosyası Aç/Oku PHP Dosyası Oluştur/Yaz PHP Dosya Yükleme PHP Çerezleri PHP Oturumları PHP Filtreleri PHP Filtreleri Gelişmiş PHP Geri Çağırma İşlevleri PHP JSON'u PHP İstisnaları

PHP OOP

PHP OOP nedir PHP Sınıfları/Nesneleri PHP Oluşturucu PHP Yıkıcı PHP Erişim Değiştiricileri PHP Kalıtımı PHP Sabitleri PHP Soyut Sınıfları PHP Arayüzleri PHP Özellikleri PHP Statik Yöntemler PHP Statik Özellikler PHP Ad Alanları PHP Yinelenebilirler

MySQL Veritabanı

MySQL Veritabanı MySQL Bağlantısı MySQL Veritabanı Oluştur MySQL Tablo Oluştur MySQL Veri Ekle MySQL Son Kimliği Al MySQL Ekle Çoklu MySQL Hazırlandı MySQL Seçim Verisi MySQL Nerede MySQL Sıralaması MySQL Verileri Sil MySQL Güncelleme Verileri MySQL Sınır Verileri

PHP XML'i

PHP XML Ayrıştırıcıları PHP SimpleXML Ayrıştırıcı PHP SimpleXML - Al PHP XML Expat'ı PHP XML DOM'si

PHP - AJAX

AJAX'a Giriş AJAX PHP AJAX Veritabanı AJAX XML'i AJAX Canlı Arama AJAX Anketi

PHP Örnekleri

PHP Örnekleri PHP Derleyici PHP Testi PHP Alıştırmaları PHP Sertifikası

PHP Referansı

PHP'ye Genel Bakış PHP Dizisi PHP Takvimi PHP Tarihi PHP Dizini PHP Hatası PHP İstisnası PHP Dosya Sistemi PHP Filtresi PHP FTP'si PHP JSON'u PHP Anahtar Kelimeler PHP Libxml PHP Postası PHP Matematik PHP Çeşitli PHP MySQLi PHP Ağı PHP Çıkış Kontrolü PHP Normal İfade PHP SimpleXML PHP Akışı PHP Dizisi PHP Değişken İşleme PHP XML Ayrıştırıcı PHP Posta Kodu PHP Saat Dilimleri

PHP İstisnaları


İstisna nedir?

İstisna, bir PHP betiğinin bir hatasını veya beklenmeyen davranışını tanımlayan bir nesnedir.

İstisnalar birçok PHP işlevi ve sınıfı tarafından oluşturulur.

Kullanıcı tanımlı işlevler ve sınıflar da istisnalar atabilir.

İstisnalar, bir işlevi kullanamayacağı verilerle karşılaştığında durdurmanın iyi bir yoludur.


İstisna Atma

İfade throw, kullanıcı tanımlı bir işlev veya yöntemin bir istisna atmasına izin verir. Bir istisna atıldığında, onu takip eden kod yürütülmez.

Bir istisna yakalanmazsa, "Yakalanmayan İstisna" mesajıyla önemli bir hata oluşur.

Onu yakalamadan bir istisna atmaya çalışalım:

Örnek

<?php
function divide($dividend, $divisor) {
  if($divisor == 0) {
    throw new Exception("Division by zero");
  }
  return $dividend / $divisor;
}

echo divide(5, 0);
?>

Sonuç şöyle görünecek:

Fatal error: Uncaught Exception: Division by zero in C:\webfolder\test.php:4
Stack trace: #0 C:\webfolder\test.php(9):
divide(5, 0) #1 {main} thrown in C:\webfolder\test.php on line 4

try...catch Bildirimi

Yukarıdaki örnekteki hatayı önlemek için, try...catchistisnaları yakalamak ve işleme devam etmek için ifadeyi kullanabiliriz.

Sözdizimi

try {
  code that can throw exceptions
} catch(Exception $e) {
  code that runs when an exception is caught
}

Örnek

Bir istisna atıldığında bir mesaj göster:

<?php
function divide($dividend, $divisor) {
  if($divisor == 0) {
    throw new Exception("Division by zero");
  }
  return $dividend / $divisor;
}

try {
  echo divide(5, 0);
} catch(Exception $e) {
  echo "Unable to divide.";
}
?>

Catch bloğu, ne tür bir istisnanın yakalanması gerektiğini ve istisnaya erişmek için kullanılabilecek değişkenin adını gösterir. Yukarıdaki örnekte, istisna türü Exceptionve değişken adı ise $e.


try...catch...nihai Açıklama

İfade try...catch...finally, istisnaları yakalamak için kullanılabilir. Bloktaki kod, finallybir istisna yakalanıp yakalanmadığına bakılmaksızın her zaman çalışır. Varsa finally, catchblok isteğe bağlıdır.

Sözdizimi

try {
  code that can throw exceptions
} catch(Exception $e) {
  code that runs when an exception is caught
} finally {
  code that always runs regardless of whether an exception was caught
}

Örnek

Bir istisna atıldığında bir mesaj gösterin ve ardından işlemin sona erdiğini belirtin:

<?php
function divide($dividend, $divisor) {
  if($divisor == 0) {
    throw new Exception("Division by zero");
  }
  return $dividend / $divisor;
}

try {
  echo divide(5, 0);
} catch(Exception $e) {
  echo "Unable to divide. ";
} finally {
  echo "Process complete.";
}
?>

Örnek

Bir istisna yakalanmamış olsa bile bir dize çıktısı alın:

<?php
function divide($dividend, $divisor) {
  if($divisor == 0) {
    throw new Exception("Division by zero");
  }
  return $dividend / $divisor;
}

try {
  echo divide(5, 0);
} finally {
  echo "Process complete.";
}
?>

İstisna Nesnesi

İstisna Nesnesi, işlevin karşılaştığı hata veya beklenmeyen davranış hakkında bilgi içerir.

Sözdizimi

new Exception(message, code, previous)

Parametre Değerleri

Parameter Description
message Optional. A string describing why the exception was thrown
code Optional. An integer that can be used used to easily distinguish this exception from others of the same type
previous Optional. If this exception was thrown in a catch block of another exception, it is recommended to pass that exception into this parameter

yöntemler

Bir istisna yakalarken, aşağıdaki tablo istisna hakkında bilgi almak için kullanılabilecek yöntemlerden bazılarını gösterir:

Method Description
getMessage() Returns a string describing why the exception was thrown
getPrevious() If this exception was triggered by another one, this method returns the previous exception. If not, then it returns null
getCode() Returns the exception code
getFile() Returns the full path of the file in which the exception was thrown
getLine() Returns the line number of the line of code which threw the exception

Örnek

Atılan bir istisna hakkında çıktı bilgileri:

<?php
function divide($dividend, $divisor) {
  if($divisor == 0) {
    throw new Exception("Division by zero", 1);
  }
  return $dividend / $divisor;
}

try {
  echo divide(5, 0);
} catch(Exception $ex) {
  $code = $ex->getCode();
  $message = $ex->getMessage();
  $file = $ex->getFile();
  $line = $ex->getLine();
  echo "Exception thrown in $file on line $line: [Code $code]
  $message";
}
?>

Eksiksiz İstisna Referansı

Tam bir referans için, Tam PHP İstisna Referansımıza gidin .

Referans, tüm İstisna yöntemlerinin açıklamalarını ve örneklerini içerir.