Bird
Raised Fist0
Jenkinsdevops~5 mins

Try-catch-finally in pipelines in Jenkins - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the try block in Jenkins pipelines?
The try block contains the code that Jenkins attempts to run. If an error occurs inside this block, Jenkins looks for a matching catch block to handle the error.
Click to reveal answer
beginner
What does the catch block do in a Jenkins pipeline?
The catch block runs only if an error happens inside the try block. It lets you handle errors gracefully, like sending notifications or cleaning up resources.
Click to reveal answer
beginner
Explain the role of the finally block in Jenkins pipelines.
The finally block runs no matter what — whether the try block succeeds or an error occurs. It is useful for cleanup tasks that must always happen, like deleting temporary files.
Click to reveal answer
intermediate
Show a simple Jenkins pipeline snippet using try-catch-finally.
Example:
try {
  echo 'Running main steps'
  sh 'exit 1' // Simulate failure
} catch (err) {
  echo "Caught error: ${err}"
} finally {
  echo 'Always runs'
}
Click to reveal answer
beginner
Why is using try-catch-finally important in Jenkins pipelines?
It helps keep your pipeline stable by handling errors without stopping the entire process unexpectedly. It also ensures important cleanup or notifications happen regardless of success or failure.
Click to reveal answer
In Jenkins pipelines, which block always runs regardless of errors?
Acatch
Btry
Cfinally
Dnone
What happens if an error occurs inside the try block and there is no catch block?
Afinally block runs then pipeline fails
BPipeline fails immediately
CPipeline ignores the error
DPipeline retries automatically
Which block is used to handle errors in Jenkins pipelines?
Atry
Bcatch
Cfinally
Derror
What is a common use of the finally block?
AClean up resources regardless of success or failure
BSend notifications only on success
CRun main build steps
DSkip error handling
How do you catch an error in a Jenkins scripted pipeline?
AUsing <code>catchError</code> step
BUsing <code>error</code> step
CUsing <code>finally</code> block
DUsing <code>try-catch</code> blocks
Describe how try-catch-finally works in Jenkins pipelines and why it is useful.
Think about what happens when something goes wrong and what must always happen.
You got /4 concepts.
    Write a simple Jenkins pipeline snippet using try, catch, and finally blocks to handle a failing shell command.
    Use echo statements to show each block running.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of using try-catch-finally blocks in Jenkins pipelines?
      easy
      A. To create parallel stages automatically
      B. To speed up the pipeline execution
      C. To handle errors and ensure cleanup actions run
      D. To deploy applications to production

      Solution

      1. Step 1: Understand the role of try-catch-finally

        The try block runs code that might fail, catch handles errors, and finally runs cleanup code regardless of success or failure.
      2. Step 2: Identify the main purpose in Jenkins pipelines

        This structure helps manage errors gracefully and ensures cleanup steps always run, making pipelines reliable.
      3. Final Answer:

        To handle errors and ensure cleanup actions run -> Option C
      4. Quick Check:

        Error handling and cleanup = A [OK]
      Hint: Remember: try for risky code, catch errors, finally cleans up [OK]
      Common Mistakes:
      • Thinking try-catch-finally speeds up pipelines
      • Confusing try-catch-finally with deployment steps
      • Assuming finally runs only on success
      2. Which of the following is the correct syntax to catch an exception in a Jenkins scripted pipeline?
      easy
      A. try { ... } catch Exception e { ... } finally { ... }
      B. try { ... } catch(Exception e) { ... } finally { ... }
      C. try { ... } catch { Exception e } finally { ... }
      D. try: { ... } except(Exception e) { ... } finally { ... }

      Solution

      1. Step 1: Recall Jenkins scripted pipeline syntax

        Jenkins scripted pipelines use Groovy syntax, where try { ... } catch(Exception e) { ... } finally { ... } is correct.
      2. Step 2: Identify syntax errors in other options

        Options A, B, and C have incorrect keywords or misplaced braces not valid in Groovy.
      3. Final Answer:

        try { ... } catch(Exception e) { ... } finally { ... } -> Option B
      4. Quick Check:

        Groovy try-catch syntax = D [OK]
      Hint: Groovy uses catch(Exception e) with braces, not colons or misplaced braces [OK]
      Common Mistakes:
      • Using Python-style except instead of catch
      • Misplacing braces around catch block
      • Omitting parentheses around exception
      3. What will be the output of this Jenkins scripted pipeline snippet?
      try {
        echo 'Start'
        error('Fail here')
        echo 'End'
      } catch (Exception e) {
        echo 'Caught error'
      } finally {
        echo 'Cleanup'
      }
      medium
      A. Start\nCaught error\nCleanup
      B. Caught error\nCleanup
      C. Start\nEnd\nCleanup
      D. Start\nCleanup

      Solution

      1. Step 1: Trace the try block execution

        The pipeline prints 'Start', then calls error('Fail here') which throws an exception, so 'End' is skipped.
      2. Step 2: Understand catch and finally blocks

        The catch block runs and prints 'Caught error'. The finally block always runs and prints 'Cleanup'.
      3. Final Answer:

        Start Caught error Cleanup -> Option A
      4. Quick Check:

        Exception skips 'End', catch and finally run = C [OK]
      Hint: Remember: error stops try, catch runs, finally always runs [OK]
      Common Mistakes:
      • Assuming code after error() runs
      • Thinking finally runs before catch
      • Ignoring that catch handles the error
      4. Identify the error in this Jenkins pipeline snippet:
      try {
        echo 'Running'
      } catch {
        echo 'Error caught'
      } finally {
        echo 'Done'
      }
      medium
      A. try block must have a return statement
      B. finally block cannot be used without catch
      C. echo statements must be inside script block
      D. Missing exception variable in catch block

      Solution

      1. Step 1: Check catch block syntax

        In Groovy/Jenkins, catch must declare an exception variable like catch (Exception e). Here it is missing.
      2. Step 2: Verify other parts

        finally block is valid with catch, echo works outside script block in scripted pipeline, and try block does not require return.
      3. Final Answer:

        Missing exception variable in catch block -> Option D
      4. Quick Check:

        catch needs (Exception e) = A [OK]
      Hint: Always declare exception variable in catch (e.g., catch(Exception e)) [OK]
      Common Mistakes:
      • Omitting exception variable in catch
      • Thinking finally requires catch to be absent
      • Assuming echo needs script block
      5. You want to run a cleanup step in your Jenkins pipeline regardless of success or failure, but only if the try block ran without syntax errors. Which is the best way to structure your pipeline?
      hard
      A. Put cleanup code inside the finally block
      B. Put cleanup code inside the catch block
      C. Put cleanup code after the try-catch-finally block
      D. Put cleanup code inside the try block after risky steps

      Solution

      1. Step 1: Understand when finally runs

        The finally block runs after try and catch, regardless of success or failure, but only if the pipeline syntax is valid and the try block started.
      2. Step 2: Compare options for cleanup placement

        Cleanup in catch runs only on errors, after block runs only if no errors, and inside try risks skipping on errors. finally is best for guaranteed cleanup.
      3. Final Answer:

        Put cleanup code inside the finally block -> Option A
      4. Quick Check:

        Cleanup always runs in finally = B [OK]
      Hint: Use finally for guaranteed cleanup after try-catch [OK]
      Common Mistakes:
      • Putting cleanup only in catch (misses success case)
      • Placing cleanup after try-catch (may skip on errors)
      • Putting cleanup inside try (skipped if error thrown early)
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard