How to loop async code with a try-catch block inside using generators?

This simple code would enter the catch just once. How can I loop this with the try catch?

run(function* (gen) {
  while (true) {
    try {
      yield request('http://www.unexistanturl.com', gen());
    } catch (err) {
      debug(err);
    }
  }
})

run(function* (gen) {
  while (true) {
      yield function(){
        try {
          request('http://www.unexistanturl.com', gen());
        } catch (err) {
          debug(err);
        }
      }();
  }
})