在aardio的函数里try...catch语句中使用return。

try{
    error("错误信息");
    //使用error可以抛出一个错误
    //如果error函数在try语句中,程序将不会报错,而会直接跳出try语句
}
catch(e){
    //如果try语句后跟catch语句则可以捕获到这个错误信息e
}

以上是try...catch的语法;

try语句尝试执行一个语句块,遇到错误则退出try语句块而不是中断aardio程序。
如果使用了catch语句块就可以捕获异常(catch语句块是可选的)。

以上是在aardio使用手册中的一段话。

也许在使用try catch的过程中我们常常想出现错误的时候直接返回错误。

举个例子:

import console; 

test = function(){try{
        error("1");
    }
    catch(e){
        return e;
    }
}

console.log(test());

console.pause(true);

我们在test执行的过程中如果出现错误就返回这个错误信息e。

可是,这样写就错了。orzing~

返回了一个null。(也就是test函数根本就没有返回值)

后来经过多次测试发现在try或者catch中使用return仅仅是跳出了try或者catch的花括号;所以函数是没有返回的。

那要想返回catch到的错误信息e,可以使用下面的方法:

import console; 

test = function(){
    var err;
    try{
        error("1");
    }
    catch(e){
        err = e;
    }
    return err;
}

console.log(test());

console.pause(true);

在函数体中定义一个局部变量err,可以在catch语句中把错误信息e赋值给err变量;

然后在函数体中返回,这样就可以返回catch到的错误信息了!

时间: 2024-10-18 17:54:25

在aardio的函数里try...catch语句中使用return。的相关文章

try~Catch语句中异常的处理过程

[2014/10/12 21:40]文章待续~ 1.函数自身捕获处理异常的情况 下面的例子介绍了try~catch语句中出现异常时语句的执行顺序: package month10; import java.lang.*; public class TryCatch{ /* * 函数产生一个ArithmeticException异常 */ public static void First(){ System.out.println("第一个异常处理的例子"); try{ //double

【转】case: Java中try catch finally语句中含有return语句的执行情况(总结版)

Java中try catch finally语句中含有return语句的执行情况(总结版) 有一点可以肯定,finally块中的内容会先于try中的return语句执行,如果finall语句块中也有return语句的话,那么直接从finally中返回了,这也是不建议在finally中return的原因.下面来看这几种情况. 情况一(try中有return,finally中没有return): [java] view plain copy public class TryTest{ public 

Java中try catch finally语句中含有return语句的执行情况

finally块中的内容会先于try中的return语句执行,如果finall语句块中也有return语句的话,那么直接从finally中返回了,这也是不建议在finally中return的原因.下面来看这几种情况. 情况一(try中有return,finally中没有return): public class TryTest{ public static void main(String[] args){ System.out.println(test()); } private static

Java中try catch finally语句中含有return语句的执行情况(总结版)

在这里看到了try >但有一点是可以肯定的,finally块中的内容会先于try中的return语句执行,如果finall语句块中也有return语句的话,那么直接从finally中返回了,这也是不建议在finally中return的原因.下面来看这几种情况. 情况一(try中有return,finally中没有return): public class TryTest { public static void main(String[] args) { System.out.println(t

oracle数据库内置函数之数值函数、字符函数、日期函数、转换函数及其在查询语句中的运用

数值函数: 1.四舍五入函数round() from dual:一行一列组成 select round(23.4) from dual;--默认不写m表示m为0 select round(23.45,1) from dual;--1表示保留小数点后一位,那么是小数点的第二位四舍五入 select round(23.45,-1) from dual;---1表示小数点前一位四舍五入取整,前一位是3四舍五入为20 2.取整函数: select ceil(23.45),floor(23.45) fro

try catch finally中return语句与非return语句的执行顺序问题

finally语句一定是会被执行的,不管前边的try块catch块中有无return语句,并且如果finally中存在return语句,这个return语句将会是最后执行的return语句,即函数最后的返回值.try,catch中的return并不是让函数直接返回,而是return语句执行完毕,把返回结果放到函数栈中,转而执行finally块,所以,若是finally中含有return语句,那么函数栈中的返回值将被刷新.看以下几种情况: 1:try有return,finally无 public

eclipse黄色警告(finally block does not complete normally) ,不建议在finally中使用return语句

在eclipse中编写如下的代码,eclipse会给出黄色告警:finally block does not complete normally. public class Test { public static void main(String[] args) { System.out.println(m1(null)); } public static String m1(String name) { try { name.length(); } finally { return name

javascript try...catch语句

try...catch语句将能引发错误的代码放在try块中,并且对应一个相应,然后有异常被抛出. 语法 try { try_statements } [catch (exception_var_1 if condition_1) { // non-standard catch_statements_1 }] ... [catch (exception_var_2) { catch_statements_2 }] [finally { finally_statements }] try_state

Atitit. Java script 多重多重catch语句的实现and Javascript js 异常机制

Atitit. Java script 多重多重catch语句的实现and Javascript js 异常机制 1. 语法错误(ERROR)和运行期错误(Exception) 1 2. 错误类型判断 二种方法: 1 3. 我们常接触到的异常包括: 2 4. ------代码 2 5. 参考 4 1. 语法错误(ERROR)和运行期错误(Exception) Javascript提供了两种特殊的错误处理方式 BOM包含一个onerror事件处理函数,这个window对象与图像对象上都有 同时EC