Skip to content
Dima Kruk edited this page Mar 26, 2013 · 6 revisions

Assertion - языковое расширение, позволяющее использовать синтаксис утверждений в ActionScript3.

Использование Assertion даёт возможность проверять различные утверждения в вашей программе. Например, если Вам нужно написать метод, который вычисляет арифметический квадратный корень, можно утверждать, что входной параметр не может быть отрицательным. Каждое утверждение содержит логическое выражение, которое на Ваш взгляд будет положительным во время исполнения. Если это не так, система выдаст исключение.

##Синтаксис

  • assert expression

Цель Assertion: предоставить быстрый и наиболее эффективный способ обнаружения и исправления ошибок. Истинность утверждений повышает уверенность в том, что программа не содержит ошибок. Блок expression может содержать любое логическое выражение.

public static function testAssert(a : Number) : Number { 
  assert a >= 0; // выдаст исключение, если параметр отрицательный
  return Math.sqrt(a); 
}
  • assert expression : message

Сообщение об ошибке будет отображаться только в Debugger версии Flash Player. В Standalone Flash Player Вы увидите лог-сообщение, в CodeOrchestra, кликнув на сообщение, Вы перейдёте на строчку кода, который вызвал исключение. Вы можете изменить вид сообщения, используя расширенный синтаксис Assertion.

public static function testAssert(a : Number) : Number { 
  assert a >= 0 : "Wrong parameter in testAssert()!!!"; 
  return Math.sqrt(a); 
}
  • time-stamp<name> … delay<name>

Time-stamp - это удобное выражение, позволяющее оценить время выполнения кода.

public static function methodA() : void { 
  time-stamp<myStamp>; 
  methodB();
  assert delay<myStamp> < 200; // delay должен быть меньше 200 ms 
}
      
public static function methodB() : void {
  var s : String = ""; 
  while ((s += " ").length < 1000000) { 
    // очень тяжелый код
  } 
}
  • #

Обозначение счетчика. При первом упоминании создается локальная переменная, при последующих обращениях происходит её увеличение (++count). Изменить значения счетчика можно указав новое значение (# = 1).

var s : String = ""; 
while ((s += " ").length < 100) { 
  #; 
} 
trace "counter == " + #; // counter == 99 
 
# = 0; // reset counter 
s = ""; 
while ((s += " ").length < 10) { 
  #; 
} 
trace "counter == " + #; // counter == 9
  • className.methods Возвращает массив, который содержит имена методов экземпляра класса класса.
public class MethodsExample extends Sprite implements <none> {
	
	public function Main() {
	  //вызываем все методы класса Main
	  for each (var m : String in Main.methods) { 
	    this[m]();
	  }
	}
	
	public function method1() : void { 
	  trace "method 1"; 
	}
	
	public function method2() : void { 
	  trace "method 2"; 
	}
	
	public function method3() : void { 
	  trace "method 3"; 
	}
}

Clone this wiki locally