Function Try Blocks

Function Try Blocks

A function try block is a function whose body consists of a try block with its associated handlers (catch-statements). A function try block is probably most often used in a class constructor. It enables you to catch exceptions that might be thrown by a base class constructor, or by a constructor of a member object. However, unlike ordinary exception handling, the handler of a function-try-block merely catches the exception; it cannot handle it. Why is this? Once a constructor of an embedded object or a base class is thrown, the partially constructed object is destroyed as part of the stack unwinding. The handler, however, lets you throw a different exception than the one it caught, preventing a violation of the exception specification:

 class X{}; //exception classC::C(const string& s) throw (X); // allowed to throw only an exception of type X     try         : str(s) // str's constructor might throw a bad_alloc exception, violating C's exception specification     {             // constructor function body     }     catch (...) //we get here when an exception is thrown during the construction of str or C     {	throw X(); //replace bad_alloc exception with an exception of type X     }

In this example, a string object is first constructed as a member of class C. String might throw a bad_alloc exception during its construction. The function try block will catch bad_alloc exception, and throw an exception of type X, which is the only one allowed for C’s constructor.

Share the Post:
XDR solutions

The Benefits of Using XDR Solutions

Cybercriminals constantly adapt their strategies, developing newer, more powerful, and intelligent ways to attack your network. Since security professionals must innovate as well, more conventional endpoint detection solutions have evolved

AI is revolutionizing fraud detection

How AI is Revolutionizing Fraud Detection

Artificial intelligence – commonly known as AI – means a form of technology with multiple uses. As a result, it has become extremely valuable to a number of businesses across

AI innovation

Companies Leading AI Innovation in 2023

Artificial intelligence (AI) has been transforming industries and revolutionizing business operations. AI’s potential to enhance efficiency and productivity has become crucial to many businesses. As we move into 2023, several

data fivetran pricing

Fivetran Pricing Explained

One of the biggest trends of the 21st century is the massive surge in analytics. Analytics is the process of utilizing data to drive future decision-making. With so much of

kubernetes logging

Kubernetes Logging: What You Need to Know

Kubernetes from Google is one of the most popular open-source and free container management solutions made to make managing and deploying applications easier. It has a solid architecture that makes

ransomware cyber attack

Why Is Ransomware Such a Major Threat?

One of the most significant cyber threats faced by modern organizations is a ransomware attack. Ransomware attacks have grown in both sophistication and frequency over the past few years, forcing

data dictionary

Tools You Need to Make a Data Dictionary

Data dictionaries are crucial for organizations of all sizes that deal with large amounts of data. they are centralized repositories of all the data in organizations, including metadata such as