{"ScriptPreparationCode":"class Result {\r\n static value(value) {\r\n return new Result(false, value);\r\n }\r\n \r\n static error(error) {\r\n return new Result(true, error);\r\n }\r\n \r\n constructor(isError, value) {\r\n this.isError = isError;\r\n this.value = value;\r\n }\r\n}\r\n\r\nfunction inverseErr(num) {\r\n if(num === 0) throw new Error(\u0022Cannot divide by 0!\u0022);\r\n return 1 / num;\r\n}\r\n\r\nfunction inverseRes(num) {\r\n if(num === 0) return Result.error(\u0022Cannot divide by 0!\u0022);\r\n return Result.value(1 / num);\r\n}","TestCases":[{"Name":"Exceptions \u002B Try/Catch","Code":"const inverses = [];\r\n\r\nfor(let i = 0; i \u003C 100; i\u002B\u002B) {\r\n try {\r\n inverses.push(inverseErr(i % 2));\r\n } catch(e) {\r\n inverses.push(null);\r\n }\r\n}","IsDeferred":false},{"Name":"Result object","Code":"const inverses = [];\r\n\r\nfor(let i = 0; i \u003C 100; i\u002B\u002B) {\r\n const inverse = inverseRes(i % 2);\r\n inverses.push(inverse.isError ? null : inverse.value);\r\n}","IsDeferred":false}]}