Обработка ошибок в NodeJs+Selenium+Browserstack.

Добрый день!

Вопрос в следующем:

Как можно корректно обрабатывать ошибки, встречаемые в процессе выполнения кода?

NodeJs штука асинхронная, и поэтому try catch там не работает, а NodeStyleCallback, который есть в документации не работает у меня, или не применим в моем случае.

rl.on('line', (line) => {
  console.log(line)
    driver.get(line);
    driver.getCurrentUrl()
      .then(function(currentUrl) {
          console.log(currentUrl);
          driver.findElement(By.css('[name=name]')).sendKeys("Name");
          driver.findElement(By.css('[name=phone]')).sendKeys("Phone");
          driver.findElement(By.css('[type=submit]')).click().then(function() {
          driver.getTitle().then(function(title){console.log(line+"     "+itle)})
          });
          driver.get("http://some.url/api/checking");
          if (driver.findElement(By.xpath("//body[contains(text(),'1')]"))) {
              console.log('Just as planned');
          } else {
              console.log('No record found');
              }
      })
});

Ну, и скажу что в конце кода, по требованию browserstack должен быть:

driver.quit();

Который срабатывает сразу после:

console.log(line);