# SE-0413: Typed throws

**URL:** <https://forums.swift.org/t/se-0413-typed-throws/68507>\
**Category:** Proposal Reviews\
**Created:** [November 17, 2023, 2:20am UTC](https://forums.swift.org/t/se-0413-typed-throws/68507 "2023-11-17T02:20:48Z")\
**Posts on this page:** 1\
**Showing post:** 74

<div class="post-metadata">

**Author:** ![Douglas\_Gregor](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/douglas_gregor/32/1362_2.png) [@Douglas\_Gregor](https://forums.swift.org/u/Douglas_Gregor)\
**Post date:** [November 30, 2023, 5:48pm UTC](https://forums.swift.org/t/se-0413-typed-throws/68507/74 "2023-11-30T17:48:09Z")

</div>

> [@beccadax](#):
>
> `do throws` is a syntax you could choose to use _if_ you want to state the `do` statement's throwing behavior explicitly; you might use it to help the type checker, to communicate your error behavior more clearly to readers, or to ask the compiler to check that you're throwing what you expect to throw. But it would be purely optional. You could still use plain `do`, and the compiler would infer the throwing behavior as best it could.

I've put up a [pull request](https://github.com/apple/swift-evolution/pull/2221) adding this syntax and its semantics to the proposal document. There are a few more details there that should help clarify what Becca's proposal means for typed throws.

Personally, I think this is an important addition---it means that all contexts in which an error is thrown can be explicitly typed, which is a good end state.

Doug

---

_[View the full topic](https://forums.swift.org/t/se-0413-typed-throws/68507)._
