# Solidity 0.6.x features: try/catch statement

DevFeed: [Solidity 0.6.x features: try/catch statement](<https://devfeed.tech/articles/solidity-0-6-x-features-try-catch-statement-16886.md>)

Original publisher: [Read original article](<https://blog.ethereum.org/en/2020/01/29/solidity-0-6-try-catch>)

Author: Elena Gesheva

Published: 2020-01-29T00:00:00Z

Content type: tutorial

Language: en

Sources: [Ethereum Foundation Blog](<https://devfeed.tech/sources/ethereum-foundation-blog.md>)

Topics: [Solidity](<https://devfeed.tech/topics/solidity.md>)

Tags: [constructor](<https://devfeed.tech/tags/constructor.md>), [error-handling](<https://devfeed.tech/tags/error-handling.md>), [errors](<https://devfeed.tech/tags/errors.md>), [event](<https://devfeed.tech/tags/event.md>), [exceptions](<https://devfeed.tech/tags/exceptions.md>), [external](<https://devfeed.tech/tags/external.md>), [function](<https://devfeed.tech/tags/function.md>), [parameter](<https://devfeed.tech/tags/parameter.md>), [property](<https://devfeed.tech/tags/property.md>), [research-development](<https://devfeed.tech/tags/research-development.md>), [syntax](<https://devfeed.tech/tags/syntax.md>)

## AI overview

This article explains Solidity 0.6.x try/catch syntax for handling failures in external function calls and contract creation without rolling back state changes made by the calling function. It demonstrates the feature with a factory pattern and explains which errors are and are not caught, including methods for retrieving revert messages.

## Source excerpt

The try/catch syntax introduced in 0.6.0 is arguably the biggest leap in error handling capabilities in Solidity, since reason strings for revert and require were released in v0.4.22. Both try and catch have been reserved keywords since v0.5.9 and now we can use them to handle failures in external function...