Paket | flash.events |
Sınıf | public class UncaughtErrorEvent |
Miras Alma | UncaughtErrorEvent ErrorEvent TextEvent Event Object |
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10.1, AIR 2 |
try..catch
bloğunun dışında bir hata atıldığında veya herhangi bir lisanslı dinleyiciye sahip olmayan bir ErrorEvent nesnesi gönderildiğinde yakalanmayan bir hata oluşur. Yakalanmamış hata olayı işlevselliği genelde bir "genel hata işleyicisi" olarak açıklanır.
Olayı gönderen UncaughtErrorEvents nesnesi bir LoaderInfo nesnesi veya bir Loader nesnesi ile ilişkilidir. Bir UncaughtErrorEvents örneğine erişmek için aşağıdaki özellikleri kullanın:
-
LoaderInfo.uncaughtErrorEvents
: aynı SWF'de tanımlanan koddaki yakalanmamış hataları algılamak için. -
Loader.uncaughtErrorEvents
: bir Loader nesnesi tarafından yüklenen SWF'de tanımlanan koddaki yakalanmamış hataları algılamak için.
Bir uncaughtError
olayı gerçekleştiğinde, olay işlense bile hataya sebep olan çağrı yığınında çalışma devam etmez. Hata bir senkronize hata ise, hatanın oluştuğu işlevde kalan herhangi bir kod çalıştırılmaz. Sonuç olarak, yakalanmamış bir hata olayı gerçekleştiğinde, uygulamanız kararsız bir durumdadır. Bir yakalanmamış hatanın bir çok sebebi olabileceği için, hangi işlevselliğin kullanılabilir olduğunu tahmin etmek olanaksızdır. Örneğin, uygulamanız ağ işlemleri veya dosya işlemleri çalıştırabiliyor olabilir. Ancak, o işlemler her zaman kullanılabilir olmayabilir.
Bir SWF diğerini yüklediğinde, uncaughtError
olayları LoaderInfo hiyerarşisinin içinde aşağı ve yeniden yukarı köpürürler. Örneğin, A.swf dosyasının bir Loader örneği kullanarak B.swf dosyasını yüklediğini varsayın. B.swf'de yakalanmamış bir hata oluşursa, LoaderInfo ve Loader nesnelerine aşağıdaki sırayla bir uncaughtError
olayı gönderilir.
- (Yakalama Aşaması) A.swf'nin LoaderInfo nesnesi
- (Yakalama Aşaması) A.swf dosyasındaki yükleyici
- (Hedef Aşaması) B.swf'nin LoaderInfo nesnesi
- (Köpürme Aşaması) A.swf dosyasının LoaderInfo nesnesi
- (Köpürme Aşaması) A.swf'nin LoaderInfo nesnesi
Bir Loader nesnesinin uncaughtErrorEvents
özelliği hedef aşamasında asla bir uncaughtErrorEvent
göndermez. Olayı yalnızca yakalama ve köpürme aşamalarında gönderir.
Başka olay köpürmelerinde olduğu gibi, stopPropagation()
veya stopImmediatePropagation()
öğelerini çağırmak olayın herhangi bir başka dinleyiciye gönderilmesini tek bir önemli farkla önler. Bir Loader nesnesinin UncaughtErrorEvents nesnesi yüklü SWF'nin LoaderInfo.uncaughtErrorEvents
nesnesiyle olay yayılımına yönelik bir çift olarak değerlendirilir. Bu nesnelerden biriyle kaydedilen bir dinleyici stopPropagation()
yöntemini çağırırsa, olaylar olay yayılımı sona ermeden önce o UncaughtErrorEvents nesnesiyle veonun ortak UncaughtErrorEvents nesnesiyle kaydedilen diğer dinleyicilere gönderilmeye devam eder. stopImmediatePropagation()
yöntemi olayların diğer ek dinleyicilerin tümüne gönderilmesini önlemeye devam eder.
İçerik çalışma zamanının hata ayıklayıcı sürümünde, örneğin Flash Player'ın hata ayıklama sürümünde veya AIR Hata Ayıklama Başlatıcısı'nda (ADL), çalışırken, bir yakalanmamış hata oluştuğunda bir yakalanmamış hata iletişim kutusu görünür. O çalışma zamanı sürümleri için, hata iletişim kutusu bir dinleyici uncaughtError
olayı için kaydedildiğinde bile görünür. İletişim kutusunun öyle bir durumda görünmesini önlemek için, UncaughtErrorEvent nesnesinin preventDefault()
yöntemini çağırın.
Yükleme nesnesi tarafından yüklenen içerik AVM1 (ActionScript 2) SWF dosyası ise, AVM1 SWF dosyasındaki yakalanmayan hatalar uncaughtError
olayıyla sonuçlanmaz. Ek olarak, HTMLLoader nesnesine yüklü HTML içeriğindeki hatalar (FlexHTML kontrolü dahil) uncaughtError
olayına sebep olmaz.
İlgili API Öğeleri
Özellik | Tanımlayan: | ||
---|---|---|---|
bubbles : Boolean [salt okunur]
Bir olayın köpüren bir olay olup olmadığını belirtir. | Event | ||
cancelable : Boolean [salt okunur]
Olayla ilişkilendirilmiş davranışın önlenebilir olup olmadığını gösterir. | Event | ||
constructor : Object
Belirli bir nesne örneği için sınıf nesnesine veya yapıcı işlevine bir başvuru. | Object | ||
currentTarget : Object [salt okunur]
Bu Event nesnesini olay dinleyicisiyle etkin olarak işleyen nesne. | Event | ||
error : * [salt okunur]
Yakalanmamış hatayla ilişkili error nesnesi. | UncaughtErrorEvent | ||
errorID : int [salt okunur]
Belirli bir hatayla ilişkili başvuru numarasını içerir. | ErrorEvent | ||
eventPhase : uint [salt okunur]
Olay akışındaki geçerli aşama. | Event | ||
target : Object [salt okunur]
Olay hedefi. | Event | ||
text : String
Bir textInput olayı için, kullanıcının girdiği karakter veya karakter dizisi. | TextEvent | ||
type : String [salt okunur]
Olay türü. | Event |
Yöntem | Tanımlayan: | ||
---|---|---|---|
UncaughtErrorEvent(type:String, bubbles:Boolean = true, cancelable:Boolean = true, error_in:* = null)
Bir uncaughtError olayıyla ilgili bilgiler içeren bir UncaughtErrorEvent nesnesi oluşturur. | UncaughtErrorEvent | ||
[geçersiz kıl]
UncaughtErrorEvent nesnesinin bir kopyasını oluşturur ve her özelliğin değerini, orijinal ile aynı olacak şekilde ayarlar. | UncaughtErrorEvent | ||
Özel ActionScript 3.0 Event sınıfınızdaki toString() yöntemini uygulamak için bir yardımcı işlev. | Event | ||
Bir nesnenin belirli bir özelliğinin tanımlı olup olmadığını gösterir. | Object | ||
Olayda preventDefault() öğesinin çağrılmış olup olmadığını kontrol eder. | Event | ||
Object sınıfının bir örneğinin parametre olarak belirtilen nesnenin prototip zincirinde olup olmadığını gösterir. | Object | ||
Bir olayın varsayılan davranışını, bu yapılabiliyorsa iptal eder. | Event | ||
Belirtilen özelliğin bulunup bulunmadığını ve numaralandırılabilir olup olmadığını gösterir. | Object | ||
Dinamik bir özelliğin döngü işlemlerinde kullanılabilirliğini ayarlar. | Object | ||
Olay akışında geçerli düğümdeki ve ondan sonra gelen düğümlerdeki olay dinleyicilerin işlenmesini engeller. | Event | ||
Olay akışında geçerli düğümden sonra gelen düğümlerdeki olay dinleyicilerin işlenmesini engeller. | Event | ||
Bu nesnenin, yerel ayara özel kurallara göre biçimlendirilmiş dize temsilini döndürür. | Object | ||
[geçersiz kıl]
UncaughtErrorEvent nesnesinin tüm özelliklerini içeren bir dize döndürür. | UncaughtErrorEvent | ||
Belirtilen nesnenin temel değerini döndürür. | Object |
Sabit | Tanımlayan: | ||
---|---|---|---|
UNCAUGHT_ERROR : String = "uncaughtError" [statik]
Bir uncaughtError olay nesnesinin type özelliğinin değerini tanımlar. | UncaughtErrorEvent |
error | özellik |
error:*
[salt okunur] Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10.1, AIR 2 |
Yakalanmamış hatayla ilişkili error nesnesi. Genelde, bu nesnenin veri türü şunlardan biridir:
- Bir hata örneği (veya onun alt sınıflarından biri), yakalanmamış hata
throw
ifadesi tarafından oluşturulan bir senkronize hata ise, böyle bir hata birtry..catch
bloğu kullanılarak yakalanmış olabilir - Bir ErrorEvent örneği (veya onun alt sınıflarından biri), yakalanmamış hata oluştuğunda bir hata olayı gönderen senkronize olmayan bir hata ise
Ancak, error
özelliği potansiyel olarak herhangi bir veri türüne ilişkin bir nesne olabilir. ActionScript yalnızca Error nesneleriyle kullanılan bir throw
ifadesi gerektirmez. Örneğin, aşağıdaki kod hem derleme zamanında hem çalışma zamanında geçerlidir.
throw new Sprite()
Bu throw
ifadesi bir try..catch
bloğu tarafından yakalanmadıysa, throw
ifadesi bir uncaughtError
olayını tetikler. Böyle bir durumda, error
gönderilen UncaughtErrorEvent nesnesi, throw
ifadesinde yapılan Sprite nesnesidir.
Sonuç olarak, uncaughtError
dinleyicinizde, error
özelliğinin veri türünü kontrol etmeniz gerekir. Aşağıdaki örnek bunun nasıl kontrol edileceğini gösterir:
function uncaughtErrorHandler(event:UncaughtErrorEvent):void { var message:String; if (event.error is Error) { message = Error(event.error).message; } else if (event.error is ErrorEvent) { message = ErrorEvent(event.error).text; } else { message = event.error.toString(); } }
error
özelliği bir Error örneği (veya Error alt sınıfı) içeriyorsa, kullanılabilir hata bilgisi içeriğin çalıştığı çalışma zamanının sürümüne bağlı olarak şu şekilde değişiklik gösterir:
Flash Player veya AIR Hata Ayıklama Başlatıcısı (ADL) hata ayıklayıcı sürümü gibi bir çalışma zamanı hata ayıklayıcı sürümünde:
Error.getStackTrace()
yöntemi, hataya sebep olan çağrı yığınını döndürürError.message
, eksiksiz hata mesajı metnini içerir
Hata ayıklayıcı olmayan çalışma zamanı sürümünde:
Error.getStackTrace()
yöntemi, hataya sebep olan çağrı yığınını döndürür. Ancak çağrı yığını bilgileri, kaynak dosya adlarını veya satır numaralarını içermez.Error.message
özelliği, hata mesajının kısa bir örneğini içerir, bu da genellikleError.errorID
veError.name
özelliklerinin birleşimidir
Hata ayıklayıcı olmayan çalışma zamanı sürümünde (Flash Player 11.4 veya önceki sürümleri ve AIR 1.4 veya önceki sürümleri):
Error.getStackTrace()
yönteminull
öğesini döndürürError.message
özelliği, hata mesajının kısa bir örneğini içerir, bu da genellikleError.errorID
veError.name
özelliklerinin birleşimidir
Error sınıfının diğer tüm özellik ve yöntemleri tüm çalışma zamanı sürümlerinde kullanılabilir.
error
özelliği bir ErrorEvent örneği ise, çağrı yığını bilgilerinin hiçbir zaman kullanılamayacağını unutmayın.
Uygulama
public function get error():*
UncaughtErrorEvent | () | Yapıcı |
public function UncaughtErrorEvent(type:String, bubbles:Boolean = true, cancelable:Boolean = true, error_in:* = null)
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10.1, AIR 2 |
Bir uncaughtError
olayıyla ilgili bilgiler içeren bir UncaughtErrorEvent nesnesi oluşturur.
type:String (default = NaN ) — Olayın türü.
| |
bubbles:Boolean (default = true ) — Event nesnesinin olay akışının köpürme aşamasında yer alıp almayacağını belirler. Olay dinleyicileri bu bilgilere miras alınan bubbles özelliği üzerinden erişebilir.
| |
cancelable:Boolean (default = true ) — Event nesnesinin iptal edilip edilemeyeceğini belirler. Olay dinleyicileri bu bilgilere miras alınan cancelable özelliği üzerinden erişebilir.
| |
error_in:* (default = null ) — Yakalanmayan veya işlenmeyen hatayla ilişkili nesne (normal şartlar altında bir Error veya ErrorEvent nesnesi).
|
clone | () | yöntem |
override public function clone():Event
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10.1, AIR 2 |
UncaughtErrorEvent nesnesinin bir kopyasını oluşturur ve her özelliğin değerini, orijinal ile aynı olacak şekilde ayarlar.
DöndürürEvent — Orijinaliyle eşleşen özellik değerlerine sahip yeni bir UncaughtErrorEvent nesnesi.
|
toString | () | yöntem |
UNCAUGHT_ERROR | Sabit |
public static const UNCAUGHT_ERROR:String = "uncaughtError"
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10.1, AIR 2 |
Bir uncaughtError
olay nesnesinin type
özelliğinin değerini tanımlar.
Not: Bir try bloğunda olay işleyicisini çağıran bir olay göndericisi varsa, catch bloğu olay işleyicisinde oluşturulan hatayı yakalamaz. Bundan sonra oluşturulan tüm hatalar LoaderInfo.uncaughtErrorEvents
dinlenerek yakalanabilir.
Bu olay şu özelliklere sahiptir:
Özellik | Değer |
---|---|
bubbles | true |
cancelable | true ; olayı iptal etmek, yakalanmamış hata iletişim kutusunun hata ayıklayıcı çalışma zamanı sürümlerinde görünmesini önler. |
currentTarget | Bu Event nesnesini olay dinleyicisiyle etkin olarak işleyen nesne. |
error | Yakalanmamış hata. |
target | Hatanın gerçekleştiği SWF'yle ilişkili LoaderInfo nesnesi. |
text | Metin hata mesajı. |
uncaughtError
olay işleyicisi tanımlıyor. O, ayrıca tıklatıldığında yakalanmamış hata işleyicisi tarafından yakalanan bir hata atan bir düğme sağlar.
Yapıcıda, kod bir Loader nesnesi oluşturur ve LoaderInfo nesnesinin uncaughtErrorEvents
özelliği tarafından gönderilen uncaughtError
olayı için bir dinleyici kaydeder.
uncaughtErrorHandler()
yönteminde, kod error
özelliğinin veri türünü kontrol eder ve ona göre yanıt verir.
package { import flash.display.Sprite; import flash.events.ErrorEvent; import flash.events.MouseEvent; import flash.events.UncaughtErrorEvent; public class UncaughtErrorEventExample extends Sprite { public function UncaughtErrorEventExample() { loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorHandler); drawUI(); } private function uncaughtErrorHandler(event:UncaughtErrorEvent):void { if (event.error is Error) { var error:Error = event.error as Error; // do something with the error } else if (event.error is ErrorEvent) { var errorEvent:ErrorEvent = event.error as ErrorEvent; // do something with the error } else { // a non-Error, non-ErrorEvent type was thrown and uncaught } } private function drawUI():void { var btn:Sprite = new Sprite(); btn.graphics.clear(); btn.graphics.beginFill(0xFFCC00); btn.graphics.drawRect(0, 0, 100, 50); btn.graphics.endFill(); addChild(btn); btn.addEventListener(MouseEvent.CLICK, clickHandler); } private function clickHandler(event:MouseEvent):void { throw new Error("Gak!"); } } }
<?xml version="1.0" encoding="utf-8"?> <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo" applicationComplete="applicationCompleteHandler();"> <fx:Script> <![CDATA[ import flash.events.ErrorEvent; import flash.events.MouseEvent; import flash.events.UncaughtErrorEvent; private function applicationCompleteHandler():void { loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorHandler); } private function uncaughtErrorHandler(event:UncaughtErrorEvent):void { if (event.error is Error) { var error:Error = event.error as Error; // do something with the error } else if (event.error is ErrorEvent) { var errorEvent:ErrorEvent = event.error as ErrorEvent; // do something with the error } else { // a non-Error, non-ErrorEvent type was thrown and uncaught } } private function clickHandler(event:MouseEvent):void { throw new Error("Gak!"); } ]]> </fx:Script> <s:Button label="Cause Error" click="clickHandler(event);"/> </s:WindowedApplication>
uncaughtError
olay işleyicisi tanımlıyor.
Yapıcıda, kod bir Loader nesnesi oluşturur ve Loader nesnesinin uncaughtErrorEvents
özelliği tarafından gönderilen uncaughtError
olayı için bir dinleyici kaydeder.
uncaughtErrorHandler()
yönteminde, kod error
özelliğinin veri türünü kontrol eder ve ona göre yanıt verir.
package { import flash.display.Loader; import flash.display.Sprite; import flash.events.ErrorEvent; import flash.events.UncaughtErrorEvent; import flash.net.URLRequest; public class LoaderUncaughtErrorEventExample extends Sprite { private var ldr:Loader; public function LoaderUncaughtErrorEventExample() { ldr = new Loader(); ldr.load(new URLRequest("child.swf")); ldr.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorHandler); } private function uncaughtErrorHandler(event:UncaughtErrorEvent):void { if (event.error is Error) { var error:Error = event.error as Error; // do something with the error } else if (event.error is ErrorEvent) { var errorEvent:ErrorEvent = event.error as ErrorEvent; // do something with the error } else { // a non-Error, non-ErrorEvent type was thrown and uncaught } } } }
Tue Jun 12 2018, 01:09 PM Z