Differences

This shows you the differences between two versions of the page.

Link to this comparison view

developer_guide:voicexml_references:elements:catch [2015/10/13 21:25] (current)
borja created
Line 1: Line 1:
 +====== < catch > ======
 +
 +===== Description =====
 +The <​catch>​ element catches events thrown from the VoiceXML application or the platform. ​ The <​catch>​ element associates a catch with a document, dialog or form item and contains executable content. ​ The <​catch>​ element catches an event with the name that either matches exactly with the event attribute or a prefix match. ​ A prefix match means the event attribute is a token prefix of the thrown event, where the dot is the token separator. For example, <catch event="​telephone.disconnect">​ is a prefix match for event telephone.disconnect.transfer. ​ Please refer to Event Handling for the list of events and errors.
 +
 +===== Syntax =====
 +<​code>​
 +<catch
 +event="​event1 event2 ..."
 +count="​Integer"​
 +cond="​ECMAScript_Expression">​
 +child elements
 +</​catch>​
 +</​code>​
 +
 +===== Attributes =====
 +|event|This attribute indicates the event or events to catch. ​ A space-separated list of events may be specified to catch multiple events. ​ The empty string matches all events. ​ This attribute is required.|
 +|count|The count attribute allows you to handle different occurrences of the same event differently. ​ Each <​form>,​ <​menu>​ and form item maintains a counter for each event that occurs while it is being visited. ​ These counters are reset each time the <​form>​ or <​menu>​ is re-entered. ​ When there is more than one <​catch>​ element catching the same event, it will visit the element with a smallest count that is greater or equal to the current counter. ​ This attribute is optional.|
 +|cond|The cond attribute is a Boolean condition that must evaluate to true in order for the <​catch>​ element to catch the event. ​ This attribute is optional.|
 +
 +===== Anonymous Variables =====
 +There are two anonymous variables that are available within the scope of the <​catch>​ element:
 +  * _event - the variable that contains the name of the event that was thrown.
 +  * _message - the variable that contains the message string from the corresponding <​throw>​ element, or a platform-defined value for events raised by the platform.
 +
 +===== Parents =====
 +<​code>​
 +<​field>,​ <​form>,​ <​initial>,​ <​menu>,​ <​object>,​ <​record>,​ <​subdialog>,​ <​transfer>,​ <​vxml>​
 +</​code>​
 +
 +===== Children =====
 +<​code>​
 +<​assign>,​ <​audio>,​ <​clear>,​ <​disconnect>,​ <​enumerate>,​ <​exit>,​ <​goto>,​ <if>, <​prompt>,​ <​reprompt>,​ <​return>,​ <​script>,​ <​submit>,​ <​throw>,​ <​value>,​ <var>
 +</​code>​
 +
 +===== Extensions =====
 +<​code>​
 +None.
 +</​code>​
 +
 +===== Limitations/​Restrictions =====
 +<​code>​
 +None.
 +</​code>​
 +
 +===== Example Code =====
 +<​code>​
 +<?xml version="​1.0"?>​
 +<vxml version="​2.0"​ xmlns="​http://​www.w3.org/​2001/​vxml">​
 + <​form>​
 +  <​grammar>​ goodbye </​grammar>​
 +  <catch event="​goodbye">​
 +   ​Thanks for using this script, goodbye.
 +   <​disconnect/>​
 +  </​catch>​
 +  <field name="​password">​
 +    <​prompt>​ what is the code word </​prompt>​
 +    <​grammar>​ apple </​grammar>​
 +    <​help>​ It is the name of a fruit </​help>​
 +    <catch event="​noinput">​ I did not hear you. </​catch>​
 +    <catch event="​nomatch"​ count="​1">​ Noop. Try again </​catch>​
 +    <catch event="​nomatch"​ count="​2">​ Noop. give another try </​catch>​
 +    <catch event="​nomatch"​ count="​3">​
 +     ​Sorry. You didn't get it for three times. Bye
 +     <​disconnect/>​
 +    </​catch>​
 +   <​filled>​
 +    <if cond="​password=='​goodbye'">​
 +     <​throw event="​goodbye"/>​
 +    <​else/>​
 +     This is correct.
 +    </if>
 +   </​filled>​
 +  </​field>​
 + </​form>​
 +</​vxml>​
 +</​code>​