V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
syaki
V2EX  ›  Node.js

万能的 V 友, CodeWars: How can I throw an error here? 求解

  •  1
     
  •   syaki · 2020-01-23 13:53:03 +08:00 · 7557 次点击
    这是一个创建于 1769 天前的主题,其中的信息可能已经有所发展或是发生改变。

    codewars 里的一道题目,求解题思路

    我目前的想法是:通过语法错误抛出 error,避免使用 throw。

    但是如何在不使用 Error 的情况下,定义 Error 的 message。

    另一个思路是如何不使用 throw 抛出一个自定义 message 的 error

    Try to write a function named bang throwing an error with a message string "Just throw like this!" with these limits:

    no invoking require function no invoking function constructors no invoking eval function no throw in your code no Error in your code no \ in your code Also, we removed fs, assert and vm from global scope, and removed assert from console. Do not modify Error in global scope, we do not use it to check.

    5 条回复    2020-01-24 11:45:56 +08:00
    EPr2hh6LADQWqRVH
        1
    EPr2hh6LADQWqRVH  
       2020-01-23 14:13:33 +08:00   ❤️ 1
    懒得知道,小学奥数有意思吗
    bertonzh
        2
    bertonzh  
       2020-01-23 16:44:48 +08:00
    Function.call 吧
    syaki
        3
    syaki  
    OP
       2020-01-23 17:04:22 +08:00
    @bertonzh 可以具体说一下如何利用 call 吗,是指对抛异常的 function 用 call 传参数改变 error 的 message 吗
    bertonzh
        4
    bertonzh  
       2020-01-23 17:26:39 +08:00
    @syaki 就是用 Function.call,传入字符串来构造函数,然后执行。效果相当于 eval 或者 new Function
    zhw2590582
        5
    zhw2590582  
       2020-01-24 11:45:56 +08:00
    我想到这个,不过异步的应该不符合题目
    Promise.reject('error message')
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3624 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 05:00 · PVG 13:00 · LAX 21:00 · JFK 00:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.