首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么catch()块不在Objection.js查询中运行,而是总是在运行时传递0或1作为结果?

在Objection.js查询中,catch()块不会直接运行,而是在运行时传递0或1作为结果。这是因为Objection.js使用Promise来处理查询操作,并且在查询过程中可能会发生错误。当发生错误时,Promise会被拒绝,并且会将错误传递给catch()块。

catch()块是用于捕获和处理Promise被拒绝的情况。它接收一个错误对象作为参数,并且可以执行相应的错误处理逻辑。在Objection.js中,catch()块通常用于处理数据库查询过程中可能出现的错误,例如连接错误、查询语法错误等。

然而,由于Objection.js的查询操作是异步的,catch()块并不会立即执行,而是在查询操作完成后才会执行。因此,catch()块不会直接返回结果,而是通过传递0或1来表示查询是否成功。

为了更好地处理查询结果,可以在catch()块中使用适当的错误处理逻辑,例如记录错误日志、返回错误信息给客户端等。此外,还可以结合其他Promise方法,如then()和finally(),来进一步处理查询结果和错误。

总结起来,catch()块不在Objection.js查询中直接运行,而是在运行时传递0或1作为结果,用于捕获和处理查询过程中可能出现的错误。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Java 异常处理一览 | 基础篇

运行时系统会在调用堆栈寻找包含可以处理异常的代码的方法,这段代码就称为异常处理程序。通过调用堆栈,从错误发生的方法开始,按照方法调用相反的顺序寻找(栈有先进后出的特点)。...当找到合适的异常处理程序时,运行时系统就会把异常传递给处理程序。如果抛出的异常对象的类型和处理程序可以处理的类型相匹配,就认为异常处理程序是适当的。 选中异常处理程序的过程就称为捕获异常。...当调用堆栈出现异常时,运行时系统会调用异常处理程序,当异常处理程序的 ExceptionType 和引发异常的类型匹配时,即命中某个 catch ,就会把异常对象分配给异常处理程序的参数,进而执行 catch...,先执行了 catch 代码的逻辑,然后执行了 finally 代码,最后执行 main 方法。...0 finally: woniu666 main:try catch return try return 我们试了,那 catch return,finally 的执行是啥样的呢?

86220

Java——你真的了解Java异常处理机制吗?

目录 1.初识异常 2.异常的基本用法 异常处理流程 3.为什么要使用异常? 异常应只用于异常的情况 4....当遇 到trycatchreturnthrow之类可以终止当前方法的代码时,jvm会先去执行finally的语 句,当finally的语句执行完毕后才会返回来执行try/catch的return...如果 finally中有returnthrow,那么将执行这些语句,不会在执行try/catch的returnthrow语 句。finally中一般写的是关闭资源之类的代码。...如果找到匹配的异常类型, 就会执行 catch 的代码 如果没有找到匹配的异常类型, 就会将异常向上传递到上层调用者....由编译器运行时给你检查出 来的,所以也叫作运行时异常。

61810
  • 检查型异常与运行时异常区别

    题目 在Java程序编译时可以忽略,在运行时可能产生的异常为( B ) A、运行时异常 B、检查型异常 C、错误ERROR D、编译异常 这个题目的答案是:B,但是为什么是B呢,下面我们来具体分析一下...示例: 运行时异常 运行时异常是指在程序运行过程中出现的异常情况,它们通常由于代码缺陷不符合预期的条件而引发。与编译时异常不同,运行时异常不需要在代码显式处理声明。...,无论是否引发异常,都会执行其中的代码 } 当try的代码引发异常时,程序会立即跳转到与异常类型匹配的catch,并执行该catch定义的代码。...如果没有匹配的catch,则异常将被传递给调用方进行处理。 可以根据需要使用多个catch来处理不同类型的异常。...下面是一个示例: try { // 可能会引发异常的代码 int result = divide(10, 0); System.out.println("计算结果:" + result

    52450

    写了挺久的代码,却还被异常支配?

    在 Java ,阻止当前方法作用域的情况,称之为异常。我们先来看下异常的结构: ? Throwable 作为顶层父类,派生出了 Error 和 Exception 两个子类。 Error:错误。...甚至不要忽略异常,我们有时候会以为这个方法不会抛出异常,而因为异常属于 受检异常,不得已我们需要捕获这个异常,但是又自作聪明得不在 catch 做任何处理操作。 ?...空的 catch 会使异常达不到应有的目的 如果我们一定要选择忽略异常,那么明确的做法应该是:在 catch 包含一条注释,说明为什么可以这样做,并且将变量名称命名为 ignored 派生异常 ?...语句后执行,但try的 return 并不是让函数马上返回结果而是 return 语句执行后,将把返回结果放置进函数栈,此时函数并不是马上返回,它要执行 finally 语句后才真正开始返回。...还是返回 finally 结果,答案已经揭晓,那么我们来总结一下: 1、不管有没有出现异常,finally中代码都会执行 2、当try和catch中有return时,finally仍然会执行 3、

    56810

    异常处理升级版

    而且很多错误与代码编写者执行的操作无关,而是表示代码运行时JVM出现了问题。     ...(); } }   分析:       1)try-catch是尝试着去捕获这些代码抛的异常,如果try语句的代码没有抛出异常,那么try-catch...是没有任何作用的                 2)如果try语句的代码抛出了异常,并且抛出的异常还是catch语句要处理的异常其子类型异常,那么这时就会执行catch语句的代码,进行异常出现后的处理...六、编译时异常和运行时异常       1)Exception有一个特殊的子类:RuntimeException       2)RuntimeException类型及其子类型都是属于运行时异常       ...:         assert x >= 0;         或者你可以将x的值传递给AssertionError对象,从而可以在报错时候显示:         assert x >= 0 :

    89690

    Java异常面试题(2020最新版)

    7. try-catch-finally 哪个部分可以省略?  答:catch 可以省略  原因  更为严格的说法其实是:try只适合处理运行时异常,try+catch适合处理运行时异常+普通异常。...(根据里氏代换原则[能使用父类型的地方一定能使用子类型],抓取 ExampleA 类型异常的 catch 能够抓住 try 抛出的 ExampleB 类型的异常)  面试题 - 说出下面代码的运行结果...当使用索引值访问某个字符串的字符,而该索引值小于0大于等于序列大小时,抛出该异常。  Java异常处理最佳实践  在 Java 处理异常并不是一个简单的事情。...说明:try的return语句执行成功后,并不马上返回,而是继续执行finally的语句,如果此处存在return语句,则在此直接返回,无情丢弃掉try的返回点。...说明:关于RPC方法返回方式使用Result方式的理由: 1)使用抛异常返回方式,调用方如果没有捕获到就会产生运行时错误。

    78130

    【148期】最最最全面的Java异常面试及解答

    7. try-catch-finally 哪个部分可以省略? 答:catch 可以省略 原因 更为严格的说法其实是:try只适合处理运行时异常,try+catch适合处理运行时异常+普通异常。...(根据里氏代换原则 能使用父类型的地方一定能使用子类型 ,抓取 ExampleA 类型异常的 catch 能够抓住 try 抛出的 ExampleB 类型的异常) 面试题 - 说出下面代码的运行结果...当使用索引值访问某个字符串的字符,而该索引值小于0大于等于序列大小时,抛出该异常。 Java异常处理最佳实践 在 Java 处理异常并不是一个简单的事情。...说明:try的return语句执行成功后,并不马上返回,而是继续执行finally的语句,如果此处存在return语句,则在此直接返回,无情丢弃掉try的返回点。...说明:关于RPC方法返回方式使用Result方式的理由:1)使用抛异常返回方式,调用方如果没有捕获到就会产生运行时错误。

    57620

    深入理解 java 异常处理机制

    ; } } 运行结果: intArray[0] = 0 intArray[0]模 -2的值: 0 intArray[1] = 1 intArray[1]模 -1的值: 0 intArray[2]...finally :无论是否捕获处理异常,finally里的语句都会被执行。当在trycatch遇到return语句时,finally语句将在方法返回之前被执行。...(5,0),将会因“除数为0”错误引发ArithmeticException异常,属于运行时异常类,由Java运行时系统自动抛出。...3.4 Throwable类的常用方法 注意:catch关键字后面括号的Exception类型的参数e。Exception就是try代码传递catch代码的变量类型,e就是变量名。...情况三:如果finally没有return语句,但是改变了要返回的值,这里有点类似与引用传递和值传递的区别,分以下两种情况,: 1)如果return的数据是基本数据类型文本字符串,则在

    53920

    java(3)-深入理解java异常处理机制

    ; } } 运行结果: intArray[0] = 0 intArray[0]模 -2的值: 0 intArray[1] = 1 intArray[1]模 -1的值: 0 intArray[2]...finally :无论是否捕获处理异常,finally里的语句都会被执行。当在trycatch遇到return语句时,finally语句将在方法返回之前被执行。...(5,0),将会因“除数为0”错误引发ArithmeticException异常,属于运行时异常类,由Java运行时系统自动抛出。...3.4 Throwable类的常用方法 注意:catch关键字后面括号的Exception类型的参数e。Exception就是try代码传递catch代码的变量类型,e就是变量名。...情况三:如果finally没有return语句,但是改变了要返回的值,这里有点类似与引用传递和值传递的区别,分以下两种情况,: 1)如果return的数据是基本数据类型文本字符串,则在

    41850

    腾讯御见捕获Flash 0day漏洞(CVE-2018-5002)野外攻击

    (SWF1运行时取参数) SWF1运行后,会以post方式从参数encKeyUrl 指向的WEB服务器得到解密key及加密的swf。使用aes算法解密后,得到漏洞swf文件,取名为SWF2。 ?...这里就产生两个重要的问题: I li8指令并不在try为什么产生的异常能被当前的catch捕获?...II catch正常情况下只能访问local_0和local_1为什么这里能越界读写? b....,即AS脚本字节码catch。...同时,由于jump目标区域的字节码序列不在Try代码内, Flash AVM认为整段代码不会发生异常,对应的catch代码不会被执行到,所以略过了对catch代码的检查,从而可以在catch代码内实现越界读写

    91400

    深入理解java异常处理机制

    Java运行时系统,由系统寻找匹配的异常处理器catch运行相应异 常处理代码,打印输出“程序出现异常,变量b不能为0。”...;       }   }   运行结果: intArray[0] = 0 intArray[0]模 -2的值:  0 intArray[1] = 1 intArray[1]模 -1的值:...finally :无论是否捕获处理异常,finally里的语句都会被执行。当在trycatch遇到return语句时,finally语句将在方法返回之前被执行。...3. try-catch-finally 规则(异常处理语句的语法规则): 1)  必须在 try 之后添加 catch finally 。...4.4 Throwable类的常用方法 注意:catch关键字后面括号的Exception类型的参数e。Exception就是try代码传递catch代码的变量类型,e就是变量名。

    67920

    京东后端实习一面,凉凉。。

    ②、运行时异常(Runtime Exception):这类异常在运行时抛出,它们都是 RuntimeException 的子类。...("3"); } } } 在test()方法,首先有一个try,接着是一个catch(用于捕获异常),最后是一个finally(无论是否捕获到异常,finally总会执行...在这个例子,try没有任何可能抛出异常的操作,因此它会正常执行完毕,并准备返回1。 ②、由于try没有异常发生,所以catch的代码不会执行。...当执行main方法时,控制台的输出将会是: 31 这是因为finally确保了它包含的System.out.print("3");会执行并打印3,随后test()方法返回try的值1,最终结果就是...17、查询和更新都频繁的字段是否适合创建索引,为什么 频繁更新的字段,不要作为主键或者索引。 索引能提高查询效率的根本原因在于它提供了一种快速查找数据的方式,而不需要扫描整个表。

    47410

    Java异常处理只有Try-Catch吗?

    如果你不记得它,则 Java 的异常会指出意外意外事件,该异常在程序执行期间(即在运行时)发生,这会破坏程序指令的正常流程。Java为我们提供了上述 try-catch 捕获异常的机制。...因此,我们用一个 try-catch 将其包围。 Java 在编译过程验证了这些异常,这就是它们与运行时异常不同的原因。...请注意,运行时异常是特定的组。根据 Java 规范,从这些异常还是有可能恢复的。作为示例,让我们回想一下 ArrayIndexOutOfBoundsException。...方法 1:Try-With-Resources try-with-resources 在 Java 7 引入的,并允许开发者在程序运行到此结束后必须关闭声明的资源。...此结果可以采用 Success Failure。

    1.3K10

    面霸篇:高频 Java 基础问题(核心卷一)

    如果整型字面量的值在-128 到 127 之间,那么自动装箱时不会 new 新的 Integer 对象,而是直接引用常量池中的 Integer 对象,超过范围 a1==b1结果是 false。...finally 一般作用在 try-catch 代码,在处理异常的时候,通常我们将一定要执行的代码方法 finally 代码,表示不管是否出现异常,该代码都会执行,一般用来存放一些关闭资源的代码...注意:在 finally 改变返回值的做法是不好的,因为如果存在 finally 代码,try 的 return 语句不会立马返回调用者,而是记录下返回值待 finally 代码执行完毕之后再向调用者返回其值...❝为什么 Java 只有值传递? 首先回顾一下在程序设计语言中有关将参数传递给方法(函数)的一些专业术语。...(int[] array) { // 将数组的第一个元素变为0 array[0] = 0; } 结果1 0 解析: array 被初始化 arr 的拷贝也就是一个对象的引用

    39411

    java异常的捕获及处理「建议收藏」

    程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。异常发生时,是任程序自生自灭,立刻退出终止。在Java即,Java在编译运行或者运行过程中出现的错误。...运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。 错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码通常被忽略。...Java 内置异常类 Java 语言定义了一些异常类在 java.lang 标准包。 标准运行时异常类的子类是最常见的异常类。...遇到这类异常,应该尽可能处理异常,使程序恢复运行,而不应该随意终止异常。 在catch捕获异常时,为什么不考虑使用Throwable类型,而只是使用Exception来进行接收?...finally的return 会覆盖 try 或者catch的返回值。 finally的return异常会抑制(消灭)前面try或者catch的异常。

    2.3K40

    深入理解java异常处理机制

    可查的异常就是在写代码的时候必须要处理抛出的,如果不处理抛出就会出现红色报警。      Exception 这种异常分两大类运行时异常和非运行时异常(编译异常)。...Java运行时系统,由系统寻找匹配的异常处理器catch运行相应异 常处理代码,打印输出“程序出现异常,变量b不能为0。”...;       }   }   运行结果: intArray[0] = 0 intArray[0]模 -2的值:  0 intArray[1] = 1 intArray[1]模 -1的值:...finally :无论是否捕获处理异常,finally里的语句都会被执行。当在trycatch遇到return语句时,finally语句将在方法返回之前被执行。...4.4 Throwable类的常用方法 注意:catch关键字后面括号的Exception类型的参数e。Exception就是try代码传递catch代码的变量类型,e就是变量名。

    93340

    C++ 异常机制分析

    我们有个程序用来记班级学生考试成绩,考试成绩分数的范围在0-100之间,不在此范围内视为数据异常: int main() { int score=0; while (cin >> score...运行时错误:产生了超出有意义值域范围的结果 stdexcept overflow_error 运行时错误:计算上溢 stdexcept underflow_error 运行时错误:计算下溢 stdexcept...如果catch语句的参数是引用类型,则该参数可直接作用于异常对象,即参数的改变也会改变异常对象,而且在catch重新抛出异常时会继续传递这种改变。...(A a) { ; } getchar(); return 0; } 程序运行结果: ?...异常处理的性能分析 异常处理机制的主要环节是运行期类型检查。当抛出一个异常时,必须确定异常是不是从try抛出。

    1.8K61
    领券