С ассертами программист может проверять допущения во время работы программы. Синтакс при этом - assert(условие). Если ассерт не верен, то выполнение программы прекратиться с соответствующим сообщением об ошибке. Существует еще несколько видов ассертов в стандартном пространстве имен GLib:
assert_not_reached()
return_if_fail(bool expr)
return_if_reached()
warn_if_fail(bool expr)
warn_if_reached()
Вы можете попытаться использовать ассерты для проверки аргументов метода на null. Однако это вовсе не обязательно, т.к. Vala неявно проверяет все методы, которые не помечены ?.
voidmethod_name(Foo foo,Bar bar){/* Не обязательно, Vala делает это за вас: return_if_fail(foo != null); return_if_fail(bar != null);*/}
Vala поддерживает базовые возможности контрактного программирования. Метод может имет предусловия(требования) и постусловия (удостоверение), которые должны пройти до и после выполнения метода соответственно:
doublemethod_name(int x,double d) requires (x > 0 && x < 10) requires (d >=0.0&& d <=1.0) ensures (result >=0.0&& result <=10.0){return d * x;}
результатом является специальная переменная, представляющая возвращаемое значение.