SlideShare a Scribd company logo
1 of 20
Enjoying challenges, providing solutions.
How to Handle Exceptions like a Pro
Topics
• What is an Exception?
• How does Outsystems categorize Exceptions?
• How does Outsystems handle Exceptions?
• Exception Encapsulation: Tips and Tricks
• Special Cases
• Timers
• BPT
• REST
What is an Exception?
An exception is an abnormal or unprecedented event that
occurs after the execution of a software program or
application. It is a runtime error of an undesired result or
event affecting normal program flow.
An exception is also known as a fault.
A person or thing that is excluded from a general statement
or does not follow a rule.
What is an Exception?
What is an Exception?
Outsystems Exceptions Tools
• Raise Exception
• Exception Message
• Exception (Type)
Outsystems Exceptions Tools
• Exception Handler
• Abort Transaction
• Log Error
Outsystems Exceptions Categorization
• Database Exception
• Security Exception
• Communication Exception
• Abort Activity Exception
• User Exceptions
Outsystems Exception Handling
Exception Handler for
MyUserException?
Exception Handler for
CategorizedExceptions?
Exception Handler for
AllExceptions?
Outsystems Exception Handling
Exception
Handler for UI
Flow?
Exception
Handler for the
Module/eSpace?
Application abort
Exception Encapsulation: Tips and Tricks
Integration Layer
• Catch the exception
• Log it
• Define an output with a success and a message
• Do not abort the transaction!
• Optional: Expose a ‘user friendly’ message in case of
unknown error
Exception Encapsulation: Tips and Tricks
Core Services Layer
• Which is the context?
• Sub-action of a bigger flow?
• Encapsulate
• Normal action to be used on the users layer?
• Do not encapsulate
• ‘User Friendly’ messages are a must (don’t forget the
translations)
Exception Encapsulation: Tips and Tricks
Users Layer
• Do not encapsulate
Special Cases
Timers
• The timeout issue
• Timeout Variable
• Timer scheduling properties
• Retry mechanism
• Service Center – Environment Configuration
Special Cases
BPT
• The timeout issue
• 5 min
• Theoretically, it can retry ‘forever’
Special Cases
REST
• All above a 400 is logged and thrown as an exception
• Sometimes it is an expected behaviour
• OnResponse Event allows to catch the response and
manipulated as needed
Useful Links
• https://success.outsystems.com/Documentation/11/Developing_an_Application/Implement_
Application_Logic/Handle_Exceptions
• https://success.outsystems.com/Documentation/11/Developing_an_Application/Implement_
Application_Logic/Handle_Exceptions/Exception_Handling_Mechanism
• https://success.outsystems.com/Documentation/11/Extensibility_and_Integration/REST/Con
sume_REST_APIs/Handling_REST_Errors
• https://success.outsystems.com/Documentation/11/Reference/OutSystems_Language/Proce
sses/Process_Tools/Automatic_Activity
Thank you!
Amsterdam
Evert van Beekstraat 1-76
1118 CL Schiphol
Nederland
+31 (0)76 711 54 00
info@iadvise.eu
Breda
Neerloopweg 364814
RS Breda
Nederland
+31 (0)76 711 54 00
info@iadvise.eu
Antwerpen
Veldkant 33b
2550 Kontich
België
+32 (0)3 451 93 28
info@iadvise.eu

More Related Content

What's hot

Jira in action
Jira in actionJira in action
Jira in action
Tan Tran
 

What's hot (20)

Launching a BPT Process on Entity Update
Launching a BPT Process on Entity UpdateLaunching a BPT Process on Entity Update
Launching a BPT Process on Entity Update
 
Jira in action
Jira in actionJira in action
Jira in action
 
Enterprise Java
Enterprise JavaEnterprise Java
Enterprise Java
 
Database Anti Patterns
Database Anti PatternsDatabase Anti Patterns
Database Anti Patterns
 
Mutation Testing
Mutation TestingMutation Testing
Mutation Testing
 
Sql Antipatterns Strike Back
Sql Antipatterns Strike BackSql Antipatterns Strike Back
Sql Antipatterns Strike Back
 
Branching Your Way to Low-Code Perfection
Branching Your Way to Low-Code PerfectionBranching Your Way to Low-Code Perfection
Branching Your Way to Low-Code Perfection
 
The 4-Layer Architecture in Practice
The 4-Layer Architecture in PracticeThe 4-Layer Architecture in Practice
The 4-Layer Architecture in Practice
 
Testing with Spring, AOT, GraalVM, and JUnit 5 - Spring I/O 2023
Testing with Spring, AOT, GraalVM, and JUnit 5 - Spring I/O 2023Testing with Spring, AOT, GraalVM, and JUnit 5 - Spring I/O 2023
Testing with Spring, AOT, GraalVM, and JUnit 5 - Spring I/O 2023
 
Vba
Vba Vba
Vba
 
Dependency Injection
Dependency InjectionDependency Injection
Dependency Injection
 
How to go about testing in React?
How to go about testing in React? How to go about testing in React?
How to go about testing in React?
 
Spring AOP
Spring AOPSpring AOP
Spring AOP
 
Redux Toolkit - Quick Intro - 2022
Redux Toolkit - Quick Intro - 2022Redux Toolkit - Quick Intro - 2022
Redux Toolkit - Quick Intro - 2022
 
HP ALM QC
HP ALM QCHP ALM QC
HP ALM QC
 
Spring Boot Interview Questions | Edureka
Spring Boot Interview Questions | EdurekaSpring Boot Interview Questions | Edureka
Spring Boot Interview Questions | Edureka
 
Unit and integration Testing
Unit and integration TestingUnit and integration Testing
Unit and integration Testing
 
Functional and Event Driven - another approach to domain modeling
Functional and Event Driven - another approach to domain modelingFunctional and Event Driven - another approach to domain modeling
Functional and Event Driven - another approach to domain modeling
 
Automation testing
Automation testingAutomation testing
Automation testing
 
Service Actions
Service ActionsService Actions
Service Actions
 

Similar to OutSystems community meetup 2019 03_how to handle exceptions like a pro

Introduction to java exceptions
Introduction to java exceptionsIntroduction to java exceptions
Introduction to java exceptions
Sujit Kumar
 
05. itil v3 service operation 2020.pptx
05. itil v3 service operation 2020.pptx05. itil v3 service operation 2020.pptx
05. itil v3 service operation 2020.pptx
zaledinwswd
 
Design byexceptions
Design byexceptionsDesign byexceptions
Design byexceptions
Asif Tasleem
 

Similar to OutSystems community meetup 2019 03_how to handle exceptions like a pro (20)

Exception handling
Exception handlingException handling
Exception handling
 
Flopsar tesacom-technical-introduction v1a-eng
Flopsar tesacom-technical-introduction v1a-engFlopsar tesacom-technical-introduction v1a-eng
Flopsar tesacom-technical-introduction v1a-eng
 
Exception handling
Exception handlingException handling
Exception handling
 
Introduction to java exceptions
Introduction to java exceptionsIntroduction to java exceptions
Introduction to java exceptions
 
Oracle Management Cloud - introduction, overview and getting started (AMIS, 2...
Oracle Management Cloud - introduction, overview and getting started (AMIS, 2...Oracle Management Cloud - introduction, overview and getting started (AMIS, 2...
Oracle Management Cloud - introduction, overview and getting started (AMIS, 2...
 
I pushed in production :). Have a nice weekend
I pushed in production :). Have a nice weekendI pushed in production :). Have a nice weekend
I pushed in production :). Have a nice weekend
 
Computer system organization
Computer system organizationComputer system organization
Computer system organization
 
The Evolution of Development Testing
The Evolution of Development TestingThe Evolution of Development Testing
The Evolution of Development Testing
 
Azure architecture design patterns - proven solutions to common challenges
Azure architecture design patterns - proven solutions to common challengesAzure architecture design patterns - proven solutions to common challenges
Azure architecture design patterns - proven solutions to common challenges
 
Reactive Micro Services with Java seminar
Reactive Micro Services with Java seminarReactive Micro Services with Java seminar
Reactive Micro Services with Java seminar
 
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...
 
Java Exceptions and Exception Handling
 Java  Exceptions and Exception Handling Java  Exceptions and Exception Handling
Java Exceptions and Exception Handling
 
Integration strategies best practices- Mulesoft meetup April 2018
Integration strategies   best practices- Mulesoft meetup April 2018Integration strategies   best practices- Mulesoft meetup April 2018
Integration strategies best practices- Mulesoft meetup April 2018
 
ITIL # Lecture 8
ITIL # Lecture 8ITIL # Lecture 8
ITIL # Lecture 8
 
Cashing in on logging and exception data
Cashing in on logging and exception dataCashing in on logging and exception data
Cashing in on logging and exception data
 
Stored Procedure Superpowers: A Developer’s Guide
Stored Procedure Superpowers: A Developer’s GuideStored Procedure Superpowers: A Developer’s Guide
Stored Procedure Superpowers: A Developer’s Guide
 
05. itil v3 service operation 2020.pptx
05. itil v3 service operation 2020.pptx05. itil v3 service operation 2020.pptx
05. itil v3 service operation 2020.pptx
 
Fault Tolerance in Distributed Environment
Fault Tolerance in Distributed EnvironmentFault Tolerance in Distributed Environment
Fault Tolerance in Distributed Environment
 
Design byexceptions
Design byexceptionsDesign byexceptions
Design byexceptions
 
Monitoring Containerized Micro-Services In Azure
Monitoring Containerized Micro-Services In AzureMonitoring Containerized Micro-Services In Azure
Monitoring Containerized Micro-Services In Azure
 

More from Providit

More from Providit (7)

Outsystems user group 2021 03 04 - cm app
Outsystems user group 2021 03 04 - cm appOutsystems user group 2021 03 04 - cm app
Outsystems user group 2021 03 04 - cm app
 
Belgium Outsystems user group speech recognition ocr
Belgium Outsystems user group speech recognition   ocrBelgium Outsystems user group speech recognition   ocr
Belgium Outsystems user group speech recognition ocr
 
OutSystems User Group 24 september 2019 - Intro
OutSystems User Group 24 september 2019 - IntroOutSystems User Group 24 september 2019 - Intro
OutSystems User Group 24 september 2019 - Intro
 
OutSystems User Group 24 september 2019 - Data Grid
OutSystems User Group 24 september 2019 - Data GridOutSystems User Group 24 september 2019 - Data Grid
OutSystems User Group 24 september 2019 - Data Grid
 
Outsystems community meetup 2018 11 service modules
Outsystems community meetup 2018 11 service modulesOutsystems community meetup 2018 11 service modules
Outsystems community meetup 2018 11 service modules
 
Outsystems community meetup 2018 11 screen templates
Outsystems community meetup 2018 11 screen templatesOutsystems community meetup 2018 11 screen templates
Outsystems community meetup 2018 11 screen templates
 
Outsystems community meetup 2018 11 reusable ui components
Outsystems community meetup 2018 11 reusable ui componentsOutsystems community meetup 2018 11 reusable ui components
Outsystems community meetup 2018 11 reusable ui components
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Recently uploaded (20)

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

OutSystems community meetup 2019 03_how to handle exceptions like a pro

  • 2. How to Handle Exceptions like a Pro
  • 3. Topics • What is an Exception? • How does Outsystems categorize Exceptions? • How does Outsystems handle Exceptions? • Exception Encapsulation: Tips and Tricks • Special Cases • Timers • BPT • REST
  • 4. What is an Exception? An exception is an abnormal or unprecedented event that occurs after the execution of a software program or application. It is a runtime error of an undesired result or event affecting normal program flow. An exception is also known as a fault. A person or thing that is excluded from a general statement or does not follow a rule.
  • 5. What is an Exception?
  • 6. What is an Exception?
  • 7. Outsystems Exceptions Tools • Raise Exception • Exception Message • Exception (Type)
  • 8. Outsystems Exceptions Tools • Exception Handler • Abort Transaction • Log Error
  • 9. Outsystems Exceptions Categorization • Database Exception • Security Exception • Communication Exception • Abort Activity Exception • User Exceptions
  • 10. Outsystems Exception Handling Exception Handler for MyUserException? Exception Handler for CategorizedExceptions? Exception Handler for AllExceptions?
  • 11. Outsystems Exception Handling Exception Handler for UI Flow? Exception Handler for the Module/eSpace? Application abort
  • 12. Exception Encapsulation: Tips and Tricks Integration Layer • Catch the exception • Log it • Define an output with a success and a message • Do not abort the transaction! • Optional: Expose a ‘user friendly’ message in case of unknown error
  • 13. Exception Encapsulation: Tips and Tricks Core Services Layer • Which is the context? • Sub-action of a bigger flow? • Encapsulate • Normal action to be used on the users layer? • Do not encapsulate • ‘User Friendly’ messages are a must (don’t forget the translations)
  • 14. Exception Encapsulation: Tips and Tricks Users Layer • Do not encapsulate
  • 15. Special Cases Timers • The timeout issue • Timeout Variable • Timer scheduling properties • Retry mechanism • Service Center – Environment Configuration
  • 16. Special Cases BPT • The timeout issue • 5 min • Theoretically, it can retry ‘forever’
  • 17. Special Cases REST • All above a 400 is logged and thrown as an exception • Sometimes it is an expected behaviour • OnResponse Event allows to catch the response and manipulated as needed
  • 18. Useful Links • https://success.outsystems.com/Documentation/11/Developing_an_Application/Implement_ Application_Logic/Handle_Exceptions • https://success.outsystems.com/Documentation/11/Developing_an_Application/Implement_ Application_Logic/Handle_Exceptions/Exception_Handling_Mechanism • https://success.outsystems.com/Documentation/11/Extensibility_and_Integration/REST/Con sume_REST_APIs/Handling_REST_Errors • https://success.outsystems.com/Documentation/11/Reference/OutSystems_Language/Proce sses/Process_Tools/Automatic_Activity
  • 20. Amsterdam Evert van Beekstraat 1-76 1118 CL Schiphol Nederland +31 (0)76 711 54 00 info@iadvise.eu Breda Neerloopweg 364814 RS Breda Nederland +31 (0)76 711 54 00 info@iadvise.eu Antwerpen Veldkant 33b 2550 Kontich België +32 (0)3 451 93 28 info@iadvise.eu