node 当变量未定义时, 无任何提示退出 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zsxzy

node 当变量未定义时, 无任何提示退出

  •  
  •   zsxzy 2018 年 6 月 11 日 4907 次点击
    这是一个创建于 2874 天前的主题,其中的信息可能已经有所发展或是发生改变。
    请教大佬, 我的一个 js 程序, use strict 模式下,
    如果把下面这行注释掉,
    let SENT_LIST = process.argv.slice(2)[4];

    当这段代码访问 SENT_LIST , node 直接退出, 没任何提示, 这是为什么?
    if (SENT_LIST) {
    await readSentFile();
    }

    ENV: node v8.11.2, ubuntu 18.04
    9 条回复    2018-06-15 12:41:42 +08:00
    Sparetire
        1
    Sparetire  
       2018 年 6 月 11 日 via Android   1
    应该是报 ReferenceError,未声明的变量你拿来用,报错退出,大部分语言都是如此吧
    zsxzy
        2
    zsxzy  
    OP
       2018 年 6 月 11 日
    @Sparetire 可是直接退出了, 不报任何消息, win 10 的 ubuntu 子系统环境
    sjn9588
        3
    sjn9588  
       2018 年 6 月 11 日   1
    有没有监听 uncaughtException,然后又不打印。加了会覆盖默认的处理。
    jimchen9999
        4
    jimchen9999  
       2018 年 6 月 11 日
    .....因为 if 为 false 所以不执行啊 你看不出来么?
    zsxzy
        5
    zsxzy  
    OP
       2018 年 6 月 11 日
    @jimchen9999 .....

    if (SENT_LIST)
    await readSentFile();

    let csvStream = csv()
    .on("data", function (data) {

    我的意思是, 如果 SENT_LIST 有定义, 会运行后面的代码, 如果没定义, node 啥都不输出, 直接退出了
    至少应该有个错误提示啊
    jimchen9999
        6
    jimchen9999  
       2018 年 6 月 11 日
    没定义 if 不就直接跳过 然后 结束程序了么?
    Sparetire
        7
    Sparetire  
       2018 年 6 月 12 日 via Android   1
    。。居然会有这么多人觉得没定义的变量就是 fakse/undefined,怕不是 js 没学好,规范规定了未声明的变量拿来使用就抛 ReferenceError,基于楼主给出的代码我不会假设作用域链上声明过该变量,那就会是报错,这点应该可以通过 uncaughtException 捕获进行验证,关键是不显示报错,大概率如#3 所说,可能有哪个地方(比如框架)监听了 uncaughtException 却没打印出来
    Sparetire
        8
    Sparetire  
       2018 年 6 月 12 日 via Android
    @Sparetire 笔误 false。。
    jimchen9999
        9
    jimchen9999  
       2018 年 6 月 15 日
    @Sparetire 我是没学好 见笑了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5240 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 05:49 PVG 13:49 LAX 22:49 JFK 01:49
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86