Note: You are looking at a static snapshot of documentation related to Robot Framework automations. The most recent documentation is at https://robocorp.com/docs

TRY / EXCEPT / FINALLY exception catching and handling in Robot Framework

Starting from Robot Framework version 5, you can use TRY, EXCEPT, and FINALLY to catch and handle errors or exceptions. This is similar to handling exceptions in Python.

Examples of using TRY, EXCEPT and FINALLY in Robot Framework

The following example robot demonstrates the use of TRY, EXCEPT, and FINALLY to catch and handle errors or exceptions in Robot Framework.

In Robot Framework, you catch errors based on the error message. In Python, you catch an exception or error object. Otherwise, the usage and behavior are similar.

Robot Framework version 5 or greater is required to use TRY, EXCEPT, and FINALLY.

*** Settings *** Documentation Robot Framework 5 syntax examples. *** Test Cases *** TRY / EXCEPT: Catch any exception TRY Fail EXCEPT Log EXCEPT with no arguments catches any exception. END TRY / EXCEPT: Catch an exception by exact message TRY Fail Error message EXCEPT Error message Log Catches only "Error message" exceptions. Log Enables error-specific exception handling. END TRY / EXCEPT: Multiple EXCEPT statements TRY Fail Error message EXCEPT Another error message Log Catches only "Another error message" exceptions. EXCEPT Error message Log Catches the "Error message" exception. END TRY / EXCEPT: Multiple messages in EXCEPT statement TRY Fail CCC EXCEPT AAA BBB CCC Log Catches any "AAA", "BBB", or "CCC" exception. END TRY / EXCEPT: Catch a specific exception, or an unexpected exception TRY Fail Error message EXCEPT Another message Log Catches only "Another message" exceptions. EXCEPT Log Catches any exception. Log Useful for handling unexpected exceptions. END TRY / EXCEPT: Catch exceptions where the message starts with TRY Fail A long error message with lots of details EXCEPT A long error message type=start Log Matches the start of an error message. END TRY / EXCEPT: Capture the error message TRY Fail Goodbye, world! EXCEPT AS ${error_message} Log ${error_message} # Goodbye, world! END TRY / EXCEPT: Using ELSE when no exceptions occured TRY Log All good! EXCEPT Error message Log An error occured. ELSE Log No error occured. END TRY / EXCEPT / FINALLY: Always execute code no matter if exceptions or not TRY Log All good! FINALLY Log FINALLY is always executed. END TRY Fail Catastrophic failure! EXCEPT Log Catches any exception. FINALLY Log FINALLY is always executed. END TRY / EXCEPT / ELSE / FINALLY: All together! TRY Fail Error message EXCEPT Log Executed if any exception occurs. ELSE Log Executed if no exceptions occur. FINALLY Log FINALLY is always executed. END TRY / EXCEPT: Glob pattern matching TRY Fail My error: 99 occured EXCEPT My error: * type=glob Log Catches by glob pattern matching. END TRY / EXCEPT: Regular expression matching TRY Fail error 99 occured EXCEPT [Ee]rror \\d+ occured type=regexp Log Catches by regular expression pattern matching. END

Use the Robot Framework cheat sheet as a quick reference

Use the Robot Framework cheat sheet and quick reference in your daily development to look up how to work with tasks, keywords, arguments, for loops, conditional if / else / else if execution, variables, lists, dictionaries, libraries, etc.

Last edit: March 16, 2022