• Shuffle
Toggle On
Toggle Off
• Alphabetize
Toggle On
Toggle Off
• Front First
Toggle On
Toggle Off
• Both Sides
Toggle On
Toggle Off
Toggle On
Toggle Off
Front

### How to study your flashcards.

Right/Left arrow keys: Navigate between flashcards.right arrow keyleft arrow key

Up/Down arrow keys: Flip the card between the front and back.down keyup key

H key: Show hint (3rd side).h key

A key: Read text to speech.a key

Play button

Play button

Progress

1/21

Click to flip

### 21 Cards in this Set

• Front
• Back
 1 1 1 1 1. What output is produced by the following code? int waitTime = 46; try { cout << "Try block entered.\n"; if (waitTime > 30) throw waitTime; cout << "Leaving try block.\n"; } catch(int thrownValue) { cout << "Exception thrown with\n" << "waitTime equal to " << thrownValue << endl; } cout << "After catch block" << endl; 1. Try block entered. Exception thrown with waitTime equal to 46 After catch block. 2. What would be the output produced by the code in Self-Test Exercise 1 if we made the following change? Change the line int waitTime = 46; to int waitTime = 12; 2. Try block entered. Leaving try block. After catch block. 3. In the code given in Self-Test Exercise 1, what is the throw statement? 3. throw waitTime; Note that the following is an if statement, not a throw statement, even though it contains a throw statement: if (waitTime > 30) throw waitTime; 4. What happens when a throw statement is executed? (Tell what happens in general, not simply what happens in the code in Self-Test Exercise 1 or some other sample code.) 4. When a throw statement is executed, that is the end of the enclosing try block. No other statements in the try block are executed, and control passes to the following catch block or blocks. When we say control passes to the following catch block, we mean that the value thrown is plugged in for the catch-block parameter (if any) and the code in the catch block is executed. 5. In the code given in Self-Test Exercise 1, what is the try block? 5. try { cout << "Try block entered."; if (waitTime > 30) throw waitTime); cout << "Leaving try block."; } 6. In the code given in Self-Test Exercise 1, what is the catch block? 6. catch(int thrownValue) { cout << "Exception thrown with\n” << “waitTime equal to" << thrownValue << endl; } 7. In the code given in Self-Test Exercise 1, what is the catch-block parameter? 7. thrownValue is the catch-block parameter. 8. What is the output produced by the following program? #include using std::cout; void sampleFunction(double test) throw (int); int main( ) { try { cout << "Trying.\n"; sampleFunction(98.6); cout << "Trying after call.\n"; } catch(int) { cout << "Catching.\n"; } cout << "End program.\n"; return 0; } void sampleFunction(double test) throw (int) { cout << "Starting sampleFunction.\n"; if (test < 100) throw 42; } 8. Trying. Starting sampleFunction. Catching. End of program. 9. What is the output produced by the program in Self-Test Exercise 8 when the following change is made to the program? Change sampleFunction(98.6); in the try block to sampleFunction(212); 9. Trying. Starting sampleFunction. Trying after call. End of program. 10. What happens when an exception is never caught? 10. If an exception is not caught anywhere, then your program ends. Technically speaking, if an exception is thrown but not caught, then the function terminate( ) is called. The default meaning for terminate( ) is to end your program. 11. Can you nest a try block inside another try block? 11. Yes, you can have a try block and corresponding catch blocks inside another larger try block. However, it would probably be better to place the inner try and catch blocks in a function definition and place an invocation of the function in the larger try block. ___ ___ allows you to design and code the normal case for your program separately from the code that handles exceptional situations. Exception handling An exception can be thrown in a try block. Alternatively, an exception can be thrown in a function definition that does not include a try block (or does not include a catch block to catch that type of exception). In this case, an invocation of the function can be placed in a try block. An ___ is caught in a catch block. exception A try block may be followed by more than one catch block. In this case, always list the catch block for a more specific exception class before the catch block for a more general exception class. The best use of exceptions is ... There is seldom any other situation that can profitably benefit from throwing an exception. to throw an exception in a function (but not catch it in the function) whenever the way the exception is handled will vary from one invocation of the function to another. If an exception is thrown in a function but not caught in that function, ... then the exception type should be listed in an exception specification for that function. If an exception is ___ ___ ___ ___, then the default behavior is to end your program. thrown but never caught Do not overuse ___. exceptions