Either cata try

https://github.com/eu81273/jsfiddle-console

by dimitrs_papadimitriou

HTML

<script src="https://rawgit.com/eu81273/jsfiddle-console/master/console.js"></script>
<script src="https://code.jquery.com/jquery-3.4.0.js"></script>

JavaScript

const right = (v) => ({
   map: (f) => right(f(v)),
   cata: (alg) => alg.right(v),
 });

 const left = (v) => ({
   map: () => left(v),
   cata: (alg) => alg.left(v),
 });


 var Try = (f) => {
   try {
     var result = f();
     return right(result);
   } catch (e) {
     return left(e);
   }
 }

Try(()=> 3/4)
.map(x=>`the computation result is :${x}`)
.cata({
   right: v => console.log(v),
   left: v => console.log("error : " + v)
 })
 
Try(()=> 3/e)
.map(x=>`the computation result is :${x}`)
.cata({
   right: v => console.log(v),
   left: v => console.log("error : " + v)
 })

 right(4)
 .map(x => x * x)
 .cata({
   right: v => console.log(v),
   left: v => console.log("left" + v)
 })

 left(4)
 .map(x => x * x)
 .cata({
   right: v => console.log(v),
   left: v => console.log("left " + v)
 })