Advertisement
ikseek

Untitled

Dec 8th, 2013
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.86 KB | None | 0 0
  1. string GetUserNameFromSystem(int user_id) {
  2.     return UserNameFromCorrectId(user_id);
  3. }
  4. void PrintUserName(int user_id) {
  5.     string user_name = GetUserNameFromSystem(user_id);
  6.     cout<<user_name;
  7. }
  8.  
  9. int main() {
  10.     PrintUserName(2);
  11. }
  12.  
  13. // Связываем их сообщениями об ошибках
  14.  
  15. bool GetUserNameFromSystem(int user_id, string& user_name) {
  16.     if (!IsCorrectUserId(user_id))
  17.         return false;
  18.     else
  19.         user_name = UserNameFromCorrectId(user_id);
  20.     return true;
  21. }
  22.  
  23. bool PrintUserName(int user_id) {
  24.     string user_name;
  25.     bool got_name = GetUserNameFromSystem(user_id, user_name);
  26.     if (!got_name)
  27.         return false;
  28.     cout<<user_name;
  29.     return true;
  30. }
  31.  
  32. int main() {
  33.     if (!PrintUserName(2))
  34.         cerr<<"Наверное, неправильный id пользователя!";
  35. }
  36.  
  37. // Более реальная проверка ошибок
  38. enum ErrorCode {
  39. SUCCESS,
  40. FILE_NOT_FOUND,
  41. UNKNOWN_USER,
  42. NOT_ENOUGH_MEMORY,
  43. SYSTEM_IS_SHUTTING_DOWN
  44. };
  45.  
  46. ErrorCode GetUserNameFromSystem(int user_id, string& user_name) {
  47.     ErrorCode ec = SUCCESS;
  48.     if (!IsCorrectUserId(user_id)) return UNKNOWN_USER;
  49.     user_name = UserNameFromCorrectId(user_id);
  50.     return ec;
  51. }
  52.  
  53. ErrorCode PrintUserName(int user_id) {
  54.     ErrorCode ec = SUCCESS;
  55.     string user_name;
  56.     ec = GetUserNameFromSystem(user_id, user_name);
  57.     if (ec != SUCCESS) return ec;
  58.     cout<<user_name;
  59.     return ec;
  60. }
  61.  
  62. int main() {
  63.     ErrorCode ec = PrintUserName(2);
  64.     int main_return_code = 0;
  65.     switch(ec) {
  66.         case SUCCESS: // ничего не нужно делать, всё прошло хорошо
  67.             main_return_code = 0;
  68.             break;
  69.         case UNKNOWN_USER; cerr<<"Наверное, неправильный id пользователя!";
  70.             main_return_code = 1;
  71.             break;
  72.         case ...
  73.         default: cerr<<"Неизвестная ошибка!";
  74.             main_return_code = 42;
  75.     }
  76.     return main_return_code ;
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement