Exception Safety Guarantees

A function provides the strong exception safety guarantee. What does this mean?

A

The function catches all exceptions internally and returns an error code instead

B

The function never throws any exceptions under any circumstances

C

If the function throws an exception, the program state is rolled back to exactly what it was before the function was called

D

If the function throws an exception, all resources are freed but the program state may have changed