Issue 15977: abstract/concrete syntax for try/catch in clauses 8.2.2.13 & 8.2.2.14 lacks support for retrieving the exception caught (qvt-rtf) Source: NASA (Dr. Nicolas F. Rouquette, nicolas.f.rouquette(at)jpl.nasa.gov) Nature: Uncategorized Issue Severity: Summary: Current abstract/concrete syntax for try/catch in clauses 8.2.2.13 & 8.2.2.14 lacks support for retrieving the exception caught. That is, QVT1.1 is currently limited to the following style of try/catch logic: try { // ... } except (Exception) { // there is no syntax to bind the actual exception caught to a variable or to retrieve it in an except expression. }; One possibility would be to introduce a variable in the catch expression (clause 8.2.2.14), e.g.: try { // ... } except (Exception e) { // do something with the exception caught: e }; or: try { // ... } except (Exception1 e1, Exception2 e2) { // do something with the exception caught: e1 or e2 }; Resolution: Revised Text: Actions taken: January 21, 2011: received issue Discussion: End of Annotations:===== m: "Rouquette, Nicolas F (313K)" To: "issues@omg.org" CC: "qvt-rtf@omg.org" Date: Fri, 21 Jan 2011 07:34:27 -0800 Subject: QVT1.1, try/catch exception notation & Exception types Thread-Topic: QVT1.1, try/catch exception notation & Exception types Thread-Index: Acu5gLCeJY3Kjaz9RnehG25Mrujbww== Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US X-Source-IP: altvirehtstap02.jpl.nasa.gov [128.149.137.73] X-Source-Sender: nicolas.f.rouquette@jpl.nasa.gov X-AUTH: Authorized X-MIME-Autoconverted: from quoted-printable to 8bit by amethyst.omg.org id p0LFYDXU018642 There are 2 issues in QVT 1.1. 1) Current abstract/concrete syntax for try/catch in clauses 8.2.2.13 & 8.2.2.14 lacks support for retrieving the exception caught. That is, QVT1.1 is currently limited to the following style of try/catch logic: try { // ... } except (Exception) { // there is no syntax to bind the actual exception caught to a variable or to retrieve it in an except expression. }; One possibility would be to introduce a variable in the catch expression (clause 8.2.2.14), e.g.: try { // ... } except (Exception e) { // do something with the exception caught: e }; or: try { // ... } except (Exception1 e1, Exception2 e2) { // do something with the exception caught: e1 or e2 };