Paket | flash.errors |
Klass | public dynamic class StackOverflowError |
Arv | StackOverflowError Error Object |
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Ett StackOverflowError-undantag kan indikera att en oändlig rekursion har inträffat. Då måste ett termineringsvärde läggas till funktionen. Det kan också indikera att den rekursiva algoritmen har ett korrekt termineringsförhållande men har gjort slut på stacken ändå. I det här fallet kan du försöka uttrycka algoritmen med upprepningar istället.
Publika egenskaper
Publika metoder
Metod | Definieras med | ||
---|---|---|---|
StackOverflowError(message:String = "")
Skapar ett nytt StackOverflowError-objekt. | StackOverflowError | ||
Returnerar anropsstacken för ett fel när felet byggs upp som en sträng. | Error | ||
Anger om det finns en egenskap angiven för ett objekt. | Object | ||
Anger om en instans av klassen Object finns i prototypkedjan för objektet som anges som parameter. | Object | ||
Anger om den angivna egenskapen finns och är uppräkningsbar. | Object | ||
Anger tillgänglighet för en dynamisk egenskap för slingåtgärder. | Object | ||
Returnerar det här objektets strängrepresentation, formaterad i enlighet med språkspecifika konventioner. | Object | ||
[åsidosätt]
Returnerar strängen ”Error” som standard eller det värde som finns i egenskapen Error.message, om den har definierats. | Error | ||
Returnerar det angivna objektets primitiva värde. | Object |
Konstruktordetaljer
StackOverflowError | () | Konstruktor |
Exempel Så här använder du exemplet
StackOverflowErrorExample.as
Följande exempel använder exempelklassen StackOverflowErrorExample för att visa felet som genereras vid eventuellt spill i stacken. Detta visas i följande steg:
- Konstruktorn anropar
lockMachine()
-metoden inom ett felhanteringskodsegment som fångar StackOverflowError-objekt. - Metoden
lockMachine()
anropar sig själv tills stacken flödar över. - Efter att StackOverflowError har orsakats fångar konstruktorn den och skickar sedan ut ett felmeddelande genom
trace
-satsen.
package { import flash.display.Sprite; import flash.errors.StackOverflowError; public class StackOverflowErrorExample extends Sprite { public function StackOverflowErrorExample() { try { lockMachine(); } catch(e:StackOverflowError) { trace(e); // StackOverflowError: Error #1023: Stack overflow. } } private function lockMachine():void { lockMachine(); } } }
Tue Jun 12 2018, 01:40 PM Z