27 lines
2.2 KiB
Markdown
27 lines
2.2 KiB
Markdown
[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
|