How can I catch a lambda thrown as an exception? I tried the following:

```
#include <functional>
int main() {
    try {
        throw [](){};
    } catch (std::function<void()> & fn) {
        fn();
    }
}

```

However the output is 

> 
> terminate called after throwing an instance of
>  'main::{lambda()#1}'
> 
> 
> 

Is it possible to catch thrown lambda exception?