GiaoTrinhC++(27Jun21)

(Hoang2711) #1

Thiết kế trang Web


60 • Ông Văn Thông


Vì age =20 nên điều kiện if (age >= 18) thỏa, nên không xét vế else nên không throw thì cũng
không catch. Lịnh cout << "\n...Test for exception completed!"; không chịu ảnh hưởng gì của try
... throw ... catch.


Ví dụ  #include
#include
using namespace std;
int main() {
try { int age = 15;
string msgOne = "You must be over 18. Sorry!";
if (age >= 18) { cout << "You are old enough."; }
else { throw (msgOne); } }
catch (string myMsg) { cout << myMsg ; }
cout << "\n...Test for exception completed!"; //lịnh ngoài try ... catch
return 0; }
Kết quả: You must be over 18. Sorry!...Test for exception completed!


Ví dụ trên minh họa cho throw một trị chuỗi (You must be over 18. Sorry!), nên chuỗi nầy phải
đưa vào biến msgOne, để sau đó mới { throw (msgOne) ; } nên đối số của catch cũng phải là chuỗi
(string myMsg) mới bắt được chuỗi ném ra.


Ví dụ  #include
#include
using namespace std;
int main() {
try { int age = 20;
string msgOne = "You must be over 18. Sorry!";
if (age >= 18) { cout << "You are old enough."; }
else { throw (msgOne); } }
catch (string myMsg) { cout << myMsg ; }
cout << "\n...Test for exception completed!"; //lịnh ngoài try ... catch
return 0; }


Kết quả: You are old enough....Test for exception completed!

Trường hợp trên: int age = 20 nên điều kiện if (age >= 18) thỏa, vế else bị thất nghiệp nên không
throw ra gì cả, khiến cho catch cũng thất nghiệp theo


Ví dụ  #include
#include
using namespace std;
int main() {
try { int age = 20;
string msgOne = "You must be over 18. Sorry!";
if (age < 18) { throw (msgOne); } }
catch (string myMsg) { cout << myMsg ; }
cout << "\n...Test for exception completed!"; //lịnh ngoài try ... catch
return 0; }
Kết quả: ...Test for exception completed!

Free download pdf