2017-01-18 2 views
1

Гипотетически, у меня есть переключатель, который имеет 437 случаев. Я определил все возможные случаи (я думаю), и каждый из них обрабатывается. Я беспокоюсь, что пропустил # 438, и хочу, чтобы что-то по умолчанию предупредило меня об этом.
я мог бы поставитьвызывать ошибку для отладки?

trace("ERROR! Stackoverflow has detected your ginormous gaffe and suspended your account indefinitely!"); 

в там, но я боюсь, что эта ошибка будет происходить 7 недель теперь и след будет потерян среди всех других моих глупых следов предупреждения. Я считал, чтобы мое По умолчанию это сделать:

trace(myArray[-1]); 

, который, несомненно, даст ошибку и остановить программу, предупреждая меня к отвратительному надзору, но мне интересно, если есть не какая-то лучше, умнее (?) путь к обнаружению возможной ошибки, подобной этой.
Кто-нибудь? Bueller?

+0

я бы больше беспокоился о 437 случаях в распределительном заявлении .. . Но выбросить ошибку - деление на 0 всегда надежное. –

+1

Devision by 0 даст вам Infinity, никакая ошибка не будет выброшена :) – Nbooo

ответ

4

Почему бы не написать об ошибке?

default: 
    throw new Error("Default reached"); 
+0

Смотрите?!? Я знал, что есть лучший, более умный способ сделать это! :) «Пистолет не стреляет, если у вас нет пуль, ваша честь!» – Chowzen

+0

@Chowzen, если этот ответ работает, тогда отметьте как решаемый, отметив значок '✔'. –

3

Первый вариант бросить исключение:

throw new Error('Exception!!!') 

но вы не получите ничего, если вы не имеете отладчика FlashPlayer

Другой способ показать всплывающее окно: В Если вы используете flashplayer в браузере:

ExternalInterface.call("alert", "Exception!!!"); 

В случае использования Flex Framework:

Alert.show('Exception!!!') 

Вы могли бы попытаться Highlite это как-то:

trace( "==========================================\n" + 
     "==========================================\n" + 
     "==========================================\n" + 
     "===============Exception!!!===============\n" + 
     "==========================================\n" + 
     "==========================================\n" + 
     "==========================================\n" +); 

И последний вариант пользовательского всплывающего:

import flash.text.TextField; 
import flash.text.TextFieldAutoSize; 

const theStage:Stage = MovieClip(root).stage; 
const tf:TextField = new TextField(); 
tf.text = "Exception!!!"; 
tf.autoSize = TextFieldAutoSize.LEFT; 
tf.x = theStage.stageWidth - tf.width >> 1; 
tf.y = theStage.stageHeight - tf.height >> 1; 
tf.border = true; 
tf.addEventListener(MouseEvent.CLICK, function(e:MouseEvent){ 
    e.currentTarget.parent.removeChild(e.currentTarget); 
}) 
theStage.addChild(tf); 

Смежные вопросы