Özel hata sınıfları oluşturma

Flash Player 9 ve üstü, Adobe AIR 1.0 ve üstü

ActionScript'te kendi özelleştirilmiş hata sınıflarınızı oluşturmak için standart Error sınıflarından birini genişletebilirsiniz. Kendi hata sınıflarınızı oluşturmanızın birçok nedeni vardır:

  • Uygulamanız için benzersiz olan belirli hataları veya hata gruplarını tanımlamak için.

    Örneğin, Flash çalışma zamanı tarafından yakalanan bu hatalara ek olarak kendi kodunuz tarafından verilen hatalar için farklı eylemler uygulayın. try..catch bloklarında yeni hata veri türünü izlemek için Error sınıfının bir alt sınıfını oluşturabilirsiniz.

  • Uygulamanız tarafından oluşturulan hatalara yönelik benzersiz hata görüntüleme yetenekleri sağlamak için.

    Örneğin, hata mesajlarınızı belirli bir şekilde formatlayan yeni bir toString() yöntemi oluşturabilirsiniz. Ayrıca bir hata kodunu alıp kullanıcının dil tercihine göre uygun mesajı alan bir lookupErrorString() yöntemini de tanımlayabilirsiniz.

Özelleştirilmiş bir hata sınıfının çekirdek ActionScript Error sınıfını genişletmesi gerekir. Aşağıda, Error sınıfını genişleten özelleştirilmiş bir AppError sınıfı örneği verilmiştir:

public class AppError extends Error 
{ 
    public function AppError(message:String, errorID:int) 
    { 
        super(message, errorID); 
    } 
}

Aşağıda, projenizde AppError öğesinin kullanılmasına bir örnek gösterilmektedir:

try 
{ 
    throw new AppError("Encountered Custom AppError", 29); 
} 
catch (error:AppError) 
{ 
    trace(error.errorID + ": " + error.message) 
}
Not: Alt sınıfınızda Error.toString() yöntemini geçersiz kılmak isterseniz bu yönteme bir ... (rest) parametresi vermeniz gerekir. ActionScript 3.0'ın esas aldığı ECMAScript dil belirtimi, Error.toString() yöntemini bu şekilde tanımlar ve ActionScript 3.0, geriye doğru uyumluluk için bu yöntemi aynı şekilde tanımlar. Bu nedenle, Error.toString() yöntemini geçersiz kıldığınızda parametreleri tamamen aynı şekilde eşleştirmeniz gerekir. O parametreler yok sayıldığı için, çalışma zamanında toString() yönteminize herhangi bir parametre iletmek istemezsiniz.