Try..Catch 2

by evildonald

HTML

<div id="demo">(empty)</div>
<div id="status">(fail)</div>

JavaScript

function main() {
	document.getElementById("demo").innerHTML = processAllPurchases()
	document.getElementById("status").innerHTML = "ok"
  
}

function processAllPurchases() {
	try {
		return b()
  }
  catch (error) {
  	return "An unhandled error was encountered.  This purchase was not successful."
  }
}

function b() {
 return validatePurchase()
}

function validatePurchase() {
	let price = 0
  
  // deduct the price, and some error happens
  throw new Error('Cannot divide by zero')
  
  return price
}

main()