Using __ASSERT_ALWAYS

This topic explains how to panic on an illegal value.

This simple example of the use of __ASSERT_ALWAYS shows how to panic on an illegal value.

Suppose the member function F() in class CMyClass, takes a TInt argument which must always be zero or positive.

void CMyClass::F(TInt aValue)
 {
 _LIT(KMyPanicDescriptor, "My panic text");

 __ASSERT_ALWAYS(aValue >= 0,User::Panic(KMyPanicDescriptor, aValue));
 ...
 /* main body of the function */
 ...
 }

If the caller passes a value which is negative, the current thread is panicked.