[diff.cpp17.except]

# Annex C (informative) Compatibility [[diff]](./#diff)

## C.3 C++ and ISO C++ 2017 [[diff.cpp17]](diff.cpp17#except)

### C.3.9 [[except]](except "14 Exception handling"): exception handling [diff.cpp17.except]

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L1308)

**Affected subclause:** [[except.spec]](except.spec)  


**Change:** Remove throw() exception specification[.](#1.sentence-1)

  


**Rationale:** Removal of obsolete feature that has been replaced by noexcept[.](#1.sentence-2)

  


**Effect on original feature:** A valid C++ 2017 function declaration, member function declaration, function
pointer declaration, or function reference declaration that uses throw() for its exception specification will be rejected as ill-formed in this
revision of C++[.](#1.sentence-3)

It should simply be replaced with noexcept for no
change of meaning since C++ 2017[.](#1.sentence-4)

[*Note [1](#note-1)*:

There is no way to write a function declaration
that is non-throwing in this revision of C++
and is also non-throwing in C++ 2003
except by using the preprocessor to generate
a different token sequence in each case[.](#1.sentence-5)

â *end note*]
