Test
C++ Exception Handling
Este test tiene tiempo límite, así que se abre en el reproductor de siempre.
Preguntas del test (12)
1#include <iostream>
using namespace std;
int main()
{
int x = -1;
try {
cout << "Inside try n";
if (x < 0)
{
throw x;
cout << "After throw n";
}
}
catch (int x ) {
cout << "Exception Caught n";
}
cout << "After catch n";
return 0;
}- AInside try
Exception Caught
After throw
After catch - BInside try
Exception Caught
After catch - CInside try
Exception Caught - DInside try
After throw
After catch
- AInside try
2What is the advantage of exception handling ?
1.Remove error-handling code from the software's main line of code.
2. A method writer can chose to handle certain exceptions and delegate others to the caller.
3. An exception that occurs in a function can be handled anywhere in the function call stack.- Aonly 1
- B1, 2, 3
- C1,3
- D1,2
3What should be put in a try block?
1. Statements that might cause exceptions
2. Statements that should be skipped in case of an exception- AOnly 1
- BOnly 2
- CBoth 1 and 2
4Output of following program
#include<iostream>
using namespace std;
class Base {};
class Derived: public Base {};
int main()
{
Derived d;
try {
throw d;
}
catch(Base b) {
cout<<"Caught Base Exception";
}
catch(Derived d) {
cout<<"Caught Derived Exception";
}
return 0;
}- ACaught Derived Exception
- BCaught Base Exception
- CCompiler Error
5#include <iostream>
using namespace std;
int main()
{
try
{
throw 'a';
}
catch (int param)
{
cout << "int exceptionn";
}
catch (...)
{
cout << "default exceptionn";
}
cout << "After Exception";
return 0;
}- Adefault exception
After Exception - Bint exception
After Exception - Cint exception
- Ddefault exception
- Adefault exception
6#include <iostream>
using namespace std;
int main()
{
try
{
throw 10;
}
catch (...)
{
cout << "default exceptionn";
}
catch (int param)
{
cout << "int exceptionn";
}
return 0;
}- Adefault exception
- Bint exception
- CCompiler Error
7#include <iostream>
using namespace std;
int main()
{
try
{
try
{
throw 20;
}
catch (int n)
{
cout << "Inner Catchn";
throw;
}
}
catch (int x)
{
cout << "Outer Catchn";
}
return 0;
}- AOuter Catch
- BInner Catch
- CInner Catch
Outer Catch - DCompiler Error
8#include <iostream>
using namespace std;
class Test {
public:
Test() { cout << "Constructing an object of Test " << endl; }
~Test() { cout << "Destructing an object of Test " << endl; }
};
int main() {
try {
Test t1;
throw 10;
} catch(int i) {
cout << "Caught " << i << endl;
}
}#include <iostream>
using namespace std;
class Test {
public:
Test() { cout << "Constructing an object of Test " << endl; }
~Test() { cout << "Destructing an object of Test " << endl; }
};
int main() {
try {
Test t1;
throw 10;
} catch(int i) {
cout << "Caught " << i << endl;
}
}- ACaught 10
- BConstructing an object of Test
Caught 10 - CConstructing an object of Test
Destructing an object of Test
Caught 10 - DCompiler Errror
9#include <iostream>
using namespace std;
class Test {
static int count;
int id;
public:
Test() {
count++;
id = count;
cout << "Constructing object number " << id << endl;
if(id == 4)
throw 4;
}
~Test() { cout << "Destructing object number " << id << endl; }
};
int Test::count = 0;
int main() {
try {
Test array[5];
} catch(int i) {
cout << "Caught " << i << endl;
}
}- AConstructing object number 1
Constructing object number 2
Constructing object number 3
Constructing object number 4
Destructing object number 1
Destructing object number 2
Destructing object number 3
Destructing object number 4
Caught 4 - BConstructing object number 1
Constructing object number 2
Constructing object number 3
Constructing object number 4
Destructing object number 3
Destructing object number 2
Destructing object number 1
Caught 4 - CConstructing object number 1
Constructing object number 2
Constructing object number 3
Constructing object number 4
Destructing object number 4
Destructing object number 3
Destructing object number 2
Destructing object number 1
Caught 4 - DConstructing object number 1
Constructing object number 2
Constructing object number 3
Constructing object number 4
Destructing object number 1
Destructing object number 2
Destructing object number 3
Caught 4
- AConstructing object number 1
10Which of the following is true about exception handling in C++? 1) There is a standard exception class like Exception class in Java. 2) All exceptions are unchecked in C++, i.e., compiler doesn't check if the exceptions are caught or not. 3) In C++, a function can specify the list of exceptions that it can throw using comma separated list like following.
void fun(int a, char b) throw (Exception1, Exception2, ..)- A1,3
- B1,2,3
- C1,2
- D2,3
11What happens in C++ when an exception is thrown and not caught anywhere like following program.
#include <iostream>
using namespace std;
int fun() throw (int)
{
throw 10;
}
int main() {
fun();
return 0;
}- ACompiler error
- BAbnormal program termination
- CProgram doesn't print anything and terminates normally
- DNone of the above
12What happens when a function throws an error but doesn't specify it in the list of exceptions it can throw. For example, what is the output of following program?
#include <iostream>
using namespace std;
// Ideally it should have been "int fun() (int)"
int fun()
{
throw 10;
}
int main()
{
try
{
fun();
}
catch (int )
{
cout << "Caught";
}
return 0;
}- ACompiler Error
- BNo compiler Error. Output is "Caught"
Información
- Descripción
- C++ Test sobre C++ Exception Handling, creado por PathaPadha Support el 04/11/2020.
- Autor
- PathaPadha Support
- Idioma
- English
- Visitas
- 220
- Etiquetas
- Valoración
- Aún sin valoraciones Valora este test