Konular

Phpde Exception İstisna Yönetimi

Phpde istisna kontrol ve yönetimi

Exceptions – İstisnalar

Istisnalar, PHP 5’te yeni ve önemli bir özelliktir. İstisnalar hata yönetiminin genişletilebilir, bakımı yapılabilir ve nesne yönelimli bir şekilde gerçekleştirilebilmesini mümkün kılan bütünleşik bir mekanizma sağlar.

Istisna yönetiminin temelini, try adındaki bir bloğun içinde yer alan ve çalıştırılan kod oluşturur.

try
{
        //işlevler
}
 
 
Eğer try bloğunda herhangi bir sorun çıkarsa istisna fırlatma denilen işlemin uygulanmasını sağlayabilirsiniz. Java gibi bazı diller belirli durumlarda sizing yerinize otomatik olarak istisna fırlatır. Php’de bu işlem elle yapılması gerekir. Istisna fırlatma işlemi şu şekilde yapılır;
Throw new Exception('mesaj',istisna kodu);
 

Istisna yönetimi mekanizmasını throw anahtar sözcüğü tetikler.Bütün bunlara ek olarak try bloğunuzu anltında en az bir catch bloğu kullanmanız gerekir.

catch(tip exception)
{
        //istisna yönetimi
}
 

Tek bir try bloğuyla ilişkilendirilen birden fazla catch bloğu olabilir. Eğer her bir catch bloğu farklı tipte bir istisna yakalayacaksa, birden fazla blok kullanılabilir. Örneğin exception sınıfının istisnalarını yakalamak isterseniz; 
catch(Exception $e)
{
        //işlemler
}
 
 

Exception örneği

<?php
function foo($x) {
    if ($x==0) {
        throw new Exception('Sıfıra bölünme hatası.');
    }
    else return 1/$x;
}

try {
    echo foo(5) . "n";
    echo foo(0) . "n";
} catch (Exception $e) {
    echo 'İstisnai durum söz konusu: ',  $e->getMessage(), "n";
}

// Continue execution
echo 'merhaba dünya';
?>
 
 

Örnekte foo isimli bir fonksiyon bir parametre ile tanımlanmış. Fonksiyon içerisindeki koşul yapısı $x değişkeninin sıfıra eşit olup olmadığını kontrol ediyor ve eşit ise bir istisna fırlatıyor.

 

Kodun devamında, tanımlanan bu fonksiyon iki ayrı değerle çağırılmakta. Bu işlemler try bloğu içerisinde tanımlanmış, devamında gelen catch bloğu ise oluşacak istisnaları yakalayacaktır. Ikinci fonksiyon çağrısına gönderilen değer sıfır olduğu için fonksiyon istisna fırlatacak ve catch bloğu tarafından yakalanacaktır.

 

Örneğin çıktısı ise;

0.2
İstisnai durum söz konusu: Sıfıra bölünme hatası.
Merhaba dünya

şeklindedir.

 

Exception sınıfında tanımlı hazır işlevler

getCode() exception yapılandırıcısına girilen ikinci parametre olan hata kodunu döndürür
getMessage() exception yapılandırıcısına girilen birinci parametre olan hata mesajın döndürür
getFile() istisnanın fırlatıldığı kod dosyasına giden tam yolu döndürür
getLine() kod dosyasındaki istisnanın fırlatıldığı satırın numarasını döndürür

Kaynak: Baturay Daylak

Yorumunuzu Ekleyin
Phpde Exception İstisna Yönetimi Yorumları +3 Yorum
  • asdasd
    1
    asdasd
    kural dışı durumların yönetimi olarakmı geçiyor bu ya anlamadım ?
    20 Nisan 2010 12:06:46, Salı
  • ibrahim
    1
    ibrahim
    Açıklamanız kısa ve öz olmuş teşekür ederim
    21 Ocak 2011 14:00:35, Cuma
  • ibrahim
    1
    ibrahim
    if in else yapısına benziyor ama neden buna gerek duyulsun
    21 Ocak 2011 14:10:15, Cuma

WinBinder İncelenmesi

WinBinder indirmek ve yüklemek , WinBinder Yapısı Hakkında Bilgiler , WinBinder Örnekleri , WinBinderda Klaslar ve Fonksiyonlar

130,270 Okunma Henüz yorum yapılmamış 15/01/2008 00:58:13

Kurallı İfadeler (regex Engine)

Bir regex'in gerçekte nasıl çalıştığını bilmek daha efektif çalışan regex ifadeleri oluşturmamızı ve regex'leri daha isabetli oluşturmamızı sağlar. Bu yazımızda oluşturduğunuz regex ifadelerinin neden beklediğiniz sonuçları vermediğini ve umduğunuz eşleşmeleri yerine getirmediğini öğreneceksiniz. Bu da bizim tabir yerindeyse daha az kafa patlatmamızı ve daha az zaman harcamamızı sağlayacaktır.

44,983 Okunma 1 Yorum 14/07/2007 05:23:11

Nesneye Yönelimli Php

Classlarla ilgili ingilizce bir makale

37,183 Okunma Henüz yorum yapılmamış 06/01/2008 11:24:59

PHP ile PDF dosya oluşturmak

Php ile yeni bir pdf dosyası oluşturmak : Öncelikle php ile pdf işlemleri yapmak için bir pdf kütüphanesine ihtiyacınız olacak

36,346 Okunma Henüz yorum yapılmamış 06/09/2007 01:22:38

PHP nedir?

HTML kodlarının arasına yerleştirilmiş php kodlarından ayrıştırıp işleyerek sonuçta saf HTML formatında bir çıktı üretmek ve Web sunucusuna iletmektir.

35,513 Okunma Henüz yorum yapılmamış 26/09/2011 14:50:52

$_FILES

Örnek kod ve açıklamalar

34,989 Okunma 4 Yorum 30/12/2007 13:36:25

Php ile Oturum Yönetimi (SESSION)

Türkçesi oturum anlamına gelen session bilgilerin saklanması için kullanılan mantıksal bir nesnedir.Session oturum yönetimini kullanarak şifreli sayfalar oluşturarak ve bu sayfaları belirlediğiniz kullanıcıların görmesini sağlayabilirsiniz.

28,701 Okunma Henüz yorum yapılmamış 22/05/2013 16:29:40 22/05/2013 16:29:55

$_SERVER

$_SERVER host bilgileri, header bilgileri, yollar ve script yolları gibi bilgileri içeren bir dizidir. Bu dizideki değerler web server tarafından üretilir. Tüm server yazılımlarının, tüm değerleri atayacağına dair bir kesinlik yoktur. Yazılım bazılarını atamayabilir, veyahut burada anlatılacak değerlerin haricinde değerler ekleyebilir

28,473 Okunma Henüz yorum yapılmamış 23/10/2007 00:51:55

Oop - Nesne Yönelimli Programlama

Artık ister istemez her programcının bulaştığı bu teknik hakkında sayısız makale yazılmıştır bu güne kadar. Bu makale de onlardan biri

28,324 Okunma 1 Yorum 06/01/2008 11:26:55

Xampp Kurulumu

Xampp apache, mysql, php ve phpmyadmin için kolay ve basit kurulum sağlayan bir uygulamadır.

27,173 Okunma Henüz yorum yapılmamış 19/12/2011 10:00:36

Verileri doğrulamak için PHP ile filtreleme işlemleri

Ziyaretçilerden gelen verilerin istediğimiz formata uygunluğunu kontrol etmeliyiz ki, güvenlik açığı yaratmayalım. E-postaları, web adreslerini, bilgi girişlerini ve dahasını Her birine uygun farklı fonksiyonlar yazıldı bu vakte kadar. Ancak PHP 5.2.0 ve üstü sürümlerde bu fonksiyonlara gereksinim azaldı. Çünkü PHP filtreleme fonksiyonları standart oldu.

26,359 Okunma Henüz yorum yapılmamış 02/12/2008 04:19:24

Php İle Excel Dosyası Oluşturmak

Genelde, herhangi bir biçimlendirme söz konusu olmadığında, veritabanındaki bir bilgiyi ya da başka bir tabloyu excel ortamına aktarmak için csv yöntemini kullanırım. Bu yöntem herkesin bildiği gibi, her sütunu tab ya da noktalı virgül gibi bir karakterle ve her satırı da enter karakteri ile bölmekten ibaret. Ama biçimlendirme söz konusu olduğunda, mesela sütunlara bir genişlik vermek, yazıları bold yapmak, bazı hücreleri sayı ya da para tipine çevirmek gibi biçimlendirmelerde bu yöntem işe yaramamakta.

26,322 Okunma 1 Yorum 22/07/2008 01:35:17

$_ENV

26,023 Okunma Henüz yorum yapılmamış 31/12/2007 09:46:00

En iyi 25 php template motoru

Php tabanlı web siteleri dizayn ederken, php kodlarını html kodlar arasına gömeriz. Fakat gün gelir bu kodları düzenlemek istediğimizde çok büyük bir çaba gerektirir. Bu tarz durumlarla başa çıkabilmek için ve daha kararlı bir sistem kodlamak için tema sistemleri geliştirebilirsiniz. Tema sistemi ya da motorlarının asıl amacı, php kodları ile html kodlarını birbirinden ayırmaktır. Böylece hangi kod üzerinde değişiklik yapmanız gerekiyorsa, kendisine ait dosyalarını açarak bu işlemi gerçekleştirebilirsiniz

25,798 Okunma Henüz yorum yapılmamış 16/02/2008 01:35:10

Php Mysql to XML

Bu yapıyı geliştirerek mysql veritabanınızdaki datalarınızı xml standartlarına dönüştürebilirsiniz.

25,331 Okunma Henüz yorum yapılmamış 05/10/2008 01:56:47

Dizi Tanımlamaları

PHP’de array tanımlayıcısını kullanarak içerisinde elemanları yerleştirmek yoluyla ya da index numarasını köşeli parantezler içerisinde belirterek atama yaparak dizi oluşturmak mümkündür

24,939 Okunma Henüz yorum yapılmamış 23/10/2007 00:36:18

Harici Dosya İnclude

İnclude kullanımı ve örnekler

24,827 Okunma Henüz yorum yapılmamış 14/04/2008 01:42:12

$_REQUEST

$_GET, $_POST, ve $_COOKIE değişkenlerini içeriğinden meydana gelen çağrışımlı bir dizidir. Bu değişken bir superglobal olduğu için tüm alanlarda (scope) geçerlidir ve bundan dolayıdır ki global $_REQUEST ; şeklinde bir tanımlamaya ihtiyaç duymaz. Eğer register_globals değişkeni php. İni de ayarlanmışsa bu değişken her yerde (Global Scope) kullanılabilir

24,015 Okunma Henüz yorum yapılmamış 24/12/2007 00:16:58

Yükleniyor...