Hacker News new | past | comments | ask | show | jobs | submit login

What about the case of "finally" blocks executing after return?



You mean, how can that be replaced with ordinary operators? If you have multiple return's, move your 'finally' block to a separate function and call it before every 'return'.


I have never been able to use the finally block. I have yet to see an example where you would want to use it.


In languages with implicit construction/destruction facility, like C++, you'd probably live happily without the finally block. There are however situations in C++ when you want to create a class with ctor/dtor only to make sure some block is executed when going out of scope, no matter how. That dtor would be your finally block.


  ctor
  try {
    dostuff
  } catch 1 {
    blahblah
  } catch 2 {
    aoeuaoeuaoeu
  } finally {
    dtor
  }
  //why not put the dtor here and just leave off the finally block completely?


Indeed - once I discovered __del__ in Python, I immediately started to do it that way instead.


any kind of cleanup -- especially releasing locks/other shared resources, and also closing sockets, files, memory, etc.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: