[gram.except] # Annex A (informative) Grammar summary [[gram]](./#gram) ## A.12 Exception handling [gram.except] [try-block:](except.pre#nt:try-block "14.1 Preamble [except.pre]") try [*compound-statement*](stmt.block#nt:compound-statement "8.4 Compound statement or block [stmt.block]") [*handler-seq*](except.pre#nt:handler-seq "14.1 Preamble [except.pre]") [function-try-block:](except.pre#nt:function-try-block "14.1 Preamble [except.pre]") try [*ctor-initializer*](class.base.init#nt:ctor-initializer "11.9.3 Initializing bases and members [class.base.init]")opt [*compound-statement*](stmt.block#nt:compound-statement "8.4 Compound statement or block [stmt.block]") [*handler-seq*](except.pre#nt:handler-seq "14.1 Preamble [except.pre]") [handler-seq:](except.pre#nt:handler-seq "14.1 Preamble [except.pre]") [*handler*](except.pre#nt:handler "14.1 Preamble [except.pre]") [*handler-seq*](except.pre#nt:handler-seq "14.1 Preamble [except.pre]")opt [handler:](except.pre#nt:handler "14.1 Preamble [except.pre]") catch ( [*exception-declaration*](except.pre#nt:exception-declaration "14.1 Preamble [except.pre]") ) [*compound-statement*](stmt.block#nt:compound-statement "8.4 Compound statement or block [stmt.block]") [exception-declaration:](except.pre#nt:exception-declaration "14.1 Preamble [except.pre]") [*attribute-specifier-seq*](dcl.attr.grammar#nt:attribute-specifier-seq "9.13.1 Attribute syntax and semantics [dcl.attr.grammar]")opt [*type-specifier-seq*](dcl.type.general#nt:type-specifier-seq "9.2.9.1 General [dcl.type.general]") [*declarator*](dcl.decl.general#nt:declarator "9.3.1 General [dcl.decl.general]") [*attribute-specifier-seq*](dcl.attr.grammar#nt:attribute-specifier-seq "9.13.1 Attribute syntax and semantics [dcl.attr.grammar]")opt [*type-specifier-seq*](dcl.type.general#nt:type-specifier-seq "9.2.9.1 General [dcl.type.general]") [*abstract-declarator*](dcl.name#nt:abstract-declarator "9.3.2 Type names [dcl.name]")opt ... [noexcept-specifier:](except.spec#nt:noexcept-specifier "14.5 Exception specifications [except.spec]") noexcept ( [*constant-expression*](expr.const#nt:constant-expression "7.7 Constant expressions [expr.const]") ) noexcept