Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.lang.c    |    Meh, in C you gotta define EVERYTHING    |    243,242 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 241,315 of 243,242    |
|    Thiago Adams to Thiago Adams    |
|    Re: do { quit; } else { }    |
|    15 Oct 25 16:04:10    |
   
   From: thiago.adams@gmail.com   
      
   On 10/8/2025 9:59 AM, Thiago Adams wrote:   
   ...   
   > Alternatives:   
   >   
   > try {   
   > throw; //error   
   > quit; //early success - exit without going to catch   
   > }   
   > catch {   
   > }   
   >   
   >   
   >   
      
   quit also can be emulated with macros:   
      
      
   #define try if (1) {   
   #define catch quit_label:; } else catch_label:   
   #define throw goto catch_label   
   #define quit goto quit_label   
      
   int main(){   
      
    try   
    {   
    quit; /* success exit*/   
    //throw; /* catch */   
    }   
    catch   
    {   
    printf("catch\n");   
    }   
      
    printf("continuation...\n");   
   }   
      
      
   quit is useful for early success avoiding else { } else {}   
      
   try   
   {   
    if (case1)   
    {   
    ret = 1;   
    quit;   
    }   
      
    if (case2)   
    {   
    if (some_error)   
    throw;   
    ret = 2;   
    quit;   
    }   
      
    if (case3)   
    {   
    ret = 3;   
    quit;   
    }   
   }   
   catch   
   {   
    ret = -1;   
   }   
   return ret;   
      
   instead of   
      
   if (case1)   
   {   
    ret = 1;   
   }   
   else if (case2)   
   {   
    if (some_error)   
    {   
    ret = -1;   
    goto exit_label;   
    }   
    ret = 2;   
   }   
   else if (case3)   
   {   
    ret = 3;   
   }   
      
      
   exit_label:   
   return ret;   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca