throw 订阅
throw,英语词汇,基本释义为投掷、丢、抛。英 [θrəʊ] 美 [θroʊ] v.扔;投;掷;抛n.抛;投掷 名词: thrower 过去式: threw 过去分词:thrown 展开全文
throw,英语词汇,基本释义为投掷、丢、抛。英 [θrəʊ] 美 [θroʊ] v.扔;投;掷;抛n.抛;投掷 名词: thrower 过去式: threw 过去分词:thrown
信息
定    义
英语单词
类    型
及物动词等
过去式
threw
中文名
投掷;丢;抛
外文名
throw
throw释义
throw及物动词vt.vi.投掷;丢;抛n.投掷的距离;丢vt.掷(色子/骰子);抛;猛动(头、臂、腿);使处于,使限于 [1]  第三人称单数:throws。过去式:threw过去分词:thrown。现在分词:throwing。易混淆的单词:throw1. 投,掷,抛,扔[O1][(+at/to)]She threw me a towel.她丢给我一条毛巾。The boy threw a stone at the dog.那男孩对狗丢石头。He quickly threw the ball to another player.他迅速把球传给了另一名球员。2. 使突然陷入;把...投进[Q][(+into)]The news threw the family into a panic.这个消息使那一家人顿时陷入惊恐不安。3. 匆匆穿上(或脱下)[Q]She threw a scarf over her shoulders.她把披巾随手往肩上一披。4. 转动(机器开关)5. 发射;投射;喷射The trees threw long shadows in the moonlight.在月光下,树木投出了长长的影子。6. 伸(四肢);挺(胸);仰(首);挥(拳)猛击7. 掷(骰子);掷出(骰子点数)8. 摔倒;摔下He threw the guy to the ground.他把那个家伙摔倒在地。9. 【口】举行(宴会等)He threw a party for us.他为我们举行舞会。10. 【口】使困惑;难住Her last question threw me for a moment.她最后一个问题我一时回答不出。11. 使(嗓音)让人听起来似来自他处12. 【口】故意输掉(比赛等)13. 大发(脾气),使发作I can't fiqure out why she threw such tantrums.我弄不懂她为什么发如此大脾气。14. 施加(影响等)不及物动词vi.1. 投,掷,抛,扔The young athlete throws well.那个年轻运动员投掷得很好。名词 n. [C]1. 投掷2. 投距,射程My nephew lives only a stone's throw from my house.我侄子住得离我家很近。3. 投掷的结果;(骰子)掷出的点数4. 围巾,披巾;(沙发等的)罩单5. 【口】冒险That will be her last throw.那将是她最后的孤注一掷。
收起全文
精华内容
下载资源
问答
  • 下面小编就为大家带来一篇基于Java中throw和throws的区别(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 主要介绍了java处理异常的机制关键字throw和throws使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 下面小编就为大家带来一篇浅谈C++函数声明后面加throw()的作用(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 使ctx.throw很棒(最好与) 指数 产品特点 使用使错误消息更美观(请参阅下面的) 只是一个更好的错误处理程序(不会删除所有标头) 不会将所有状态代码都设置为500( ) 支持Flash消息和新设置的会话对象的保存...
  • 主要给大家介绍了关于C++中try throw catch异常处理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用C++具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
  • 主要介绍了Java编程中使用throw关键字抛出异常的用法,是Java入门学习中的基础知识,需要的朋友可以参考下
  • 主要介绍了C++中异常处理的基本思想及throw类抛出异常的使用,也深入谈到了异常被抛出后的栈解旋unwinding过程,需要的朋友可以参考下
  • 主要介绍了简单了解Java关键字throw和throws的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • ECMAScript throw表达式 该提议定义了新的语法以从表达式上下文中引发异常。 地位 阶段: 2 冠军:罗恩·巴克顿(@rbuckton) 有关更多信息,请参阅。 作者 罗恩·巴克顿(@rbuckton) 提议 throw表达式使您可以在...
  • 主要介绍了Java throw和throws使用区别分析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • Java的throw和return

    2017-07-03 13:44:16
    Java的throw和return
  • 主要介绍了C++异常处理 try,catch,throw,finally的用法,需要的朋友可以参考下
  • throw 和 throws 的区别?

    万次阅读 多人点赞 2019-05-30 10:02:58
    throw 和 throws 的区别? throw: 表示方法内抛出某种异常对象 如果异常对象是非 RuntimeException 则需要在方法申明时加上该异常的抛出 即需要加上 throws 语句 或者 在方法体内 try catch 处理该异常,否则...

    throw 和 throws 的区别?

    throw:

    • 表示方法内抛出某种异常对象
    • 如果异常对象是非 RuntimeException 则需要在方法申明时加上该异常的抛出 即需要加上 throws 语句 或者 在方法体内 try catch 处理该异常,否则编译报错
    • 执行到 throw 语句则后面的语句块不再执行

    throws:

    • 方法的定义上使用 throws 表示这个方法可能抛出某种异常
    • 需要由方法的调用者进行异常处理
    package constxiong.interview;
    
    import java.io.IOException;
    
    public class TestThrowsThrow {
    
    	public static void main(String[] args) {
    		testThrows();
    		
    		Integer i = null;
    		testThrow(i);
    		
    		String filePath = null;
    		try {
    			testThrow(filePath);
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    	
    	/**
    	 * 测试 throws 关键字
    	 * @throws NullPointerException
    	 */
    	public static void testThrows() throws NullPointerException {
    		Integer i = null;
    		System.out.println(i + 1);
    	}
    	
    	/**
    	 * 测试 throw 关键字抛出 运行时异常
    	 * @param i
    	 */
    	public static void testThrow(Integer i) {
    		if (i == null) {
    			throw new NullPointerException();//运行时异常不需要在方法上申明
    		}
    	}
    	
    	/**
    	 * 测试 throw 关键字抛出 非运行时异常,需要方法体需要加 throws 异常抛出申明
    	 * @param i
    	 */
    	public static void testThrow(String filePath) throws IOException {
    		if (filePath == null) {
    			throw new IOException();//运行时异常不需要在方法上申明
    		}
    	}
    }
    

     


    【Java面试题与答案】整理推荐

     

    展开全文
  • 主要介绍了C++编程异常处理中try和throw以及catch语句的用法,包括对Catch块的计算方式的介绍,需要的朋友可以参考下
  • 主要介绍了JAVA异常处理机制之throws/throw使用情况的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 主要介绍了详解Java异常处理中throw与throws关键字的用法区别,这也是Java面试题目中的常客,需要的朋友可以参考下
  • C++ throw

    2020-03-19 09:58:33
    抛出(Throw)--> 检测(Try) --> 捕获(Catch) 异常必须显式地抛出,才能被检测和捕获到;如果没有显式的抛出,即使有异常也检测不到。 在 C++ 中,我们使用 throw 关键字来显式地抛出异常,它的用法为: ...

    我们知道C++ 异常处理的流程,具体为:

    抛出(Throw)--> 检测(Try) --> 捕获(Catch)
    

    异常必须显式地抛出,才能被检测和捕获到;如果没有显式的抛出,即使有异常也检测不到。

    在 C++ 中,我们使用 throw 关键字来显式地抛出异常,它的用法为:

    throw exceptionData;
    

    exceptionData 是“异常数据”的意思,它可以包含任意的信息,完全有程序员决定。exceptionData 可以是 int、float、bool 等基本类型,也可以是指针、数组、字符串、结构体、类等聚合类型,请看下面的例子:

    char str[] = "http://c.biancheng.net";
    char *pstr = str;
    
    class Base{};
    Base obj;
    
    throw 100;  //int 类型
    throw str;  //数组类型
    throw pstr;  //指针类型
    throw obj;  //对象类型
    

    一个动态数组的例子

    C/C++ 规定,数组一旦定义后,它的长度就不能改变了;换句话说,数组容量不能动态地增大或者减小。这样的数组称为静态数组(Static array)。静态数组有时候会给编码代码不便,我们可以通过自定义的 Array 类来实现动态数组(Dynamic array)。所谓动态数组,是指数组容量能够在使用的过程中随时增大或减小。

    使用异常示例。

    #include <iostream>
    #include <cstdlib>
    using namespace std;
    
    //自定义的异常类型
    class OutOfRange{
    public:
        OutOfRange(): m_flag(1){ };
        OutOfRange(int len, int index): m_len(len), m_index(index), m_flag(2){ }
    public:
        void what() const;  //获取具体的错误信息
    private:
        int m_flag;  //不同的flag表示不同的错误
        int m_len;  //当前数组的长度
        int m_index;  //当前使用的数组下标
    };
    
    void OutOfRange::what() const {
        if(m_flag == 1){
            cout<<"Error: empty array, no elements to pop."<<endl;
        }else if(m_flag == 2){
            cout<<"Error: out of range( array length "<<m_len<<", access index "<<m_index<<" )"<<endl;
        }else{
            cout<<"Unknown exception."<<endl;
        }
    }
    
    //实现动态数组
    class Array{
    public:
        Array();
        ~Array(){ free(m_p); };
    public:
        int operator[](int i) const;  //获取数组元素
        int push(int ele);  //在末尾插入数组元素
        int pop();  //在末尾删除数组元素
        int length() const{ return m_len; };  //获取数组长度
    private:
        int m_len;  //数组长度
        int m_capacity;  //当前的内存能容纳多少个元素
        int *m_p;  //内存指针
    private:
        static const int m_stepSize = 50;  //每次扩容的步长
    };
    
    Array::Array(){
        m_p = (int*)malloc( sizeof(int) * m_stepSize );
        m_capacity = m_stepSize;
        m_len = 0;
    }
    int Array::operator[](int index) const {
        if( index<0 || index>=m_len ){  //判断是否越界
            throw OutOfRange(m_len, index);  //抛出异常(创建一个匿名对象)
        }
    
        return *(m_p + index);
    }
    int Array::push(int ele){
        if(m_len >= m_capacity){  //如果容量不足就扩容
            m_capacity += m_stepSize;
            m_p = (int*)realloc( m_p, sizeof(int) * m_capacity );  //扩容
        }
    
        *(m_p + m_len) = ele;
        m_len++;
        return m_len-1;
    }
    int Array::pop(){
        if(m_len == 0){
             throw OutOfRange();  //抛出异常(创建一个匿名对象)
        }
    
        m_len--;
        return *(m_p + m_len);
    }
    
    //打印数组元素
    void printArray(Array &arr){
        int len = arr.length();
    
        //判断数组是否为空
        if(len == 0){
            cout<<"Empty array! No elements to print."<<endl;
            return;
        }
    
        for(int i=0; i<len; i++){
            if(i == len-1){
                cout<<arr[i]<<endl;
            }else{
                cout<<arr[i]<<", ";
            }
        }
    }
    
    int main(){
        Array nums;
        //向数组中添加十个元素
        for(int i=0; i<10; i++){
            nums.push(i);
        }
        printArray(nums);
    
        //尝试访问第20个元素
        try{
            cout<<nums[20]<<endl;
        }catch(OutOfRange &e){
            e.what();
        }
    
        //尝试弹出20个元素
        try{
            for(int i=0; i<20; i++){
                nums.pop();
            }
        }catch(OutOfRange &e){
            e.what();
        }
    
        printArray(nums);
    
        return 0;
    }
    

    运行结果:

    0, 1, 2, 3, 4, 5, 6, 7, 8, 9
    Error: out of range( array length 10, access index 20 )
    Error: empty array, no elements to pop.
    Empty array! No elements to print.
    

    Array 类实现了动态数组,它的主要思路是:在创建对象时预先分配出一定长度的内存(通过 malloc() 分配),内存不够用时就再扩展内存(通过 realloc() 重新分配)。Array 数组只能在尾部一个一个地插入(通过 push() 插入)或删除(通过 pop() 删除)元素。

    我们通过重载过的[ ]运算符来访问数组元素,如果下标过小或过大,就会抛出异常(第53行代码);在抛出异常的同时,我们还记录了当前数组的长度和要访问的下标。

    在使用 pop() 删除数组元素时,如果当前数组为空,也会抛出错误。

    throw 用作异常规范

    throw 关键字除了可以用在函数体中抛出异常,还可以用在函数头和函数体之间,指明当前函数能够抛出的异常类型,这称为异常规范(Exception specification)。

    double func (char param) throw (int);
    

    这条语句声明了一个名为 func 的函数,它的返回值类型为 double,有一个 char 类型的参数,并且只能抛出 int 类型的异常。如果抛出其他类型的异常,try 将无法捕获,只能终止程序。

    如果函数会抛出多种类型的异常,那么可以用逗号隔开:

    double func (char param) throw (int, char, exception);
    

    如果函数不会抛出任何异常,那么( )中什么也不写:

    double func (char param) throw ();
    

    如此,func() 函数就不能抛出任何类型的异常了,即使抛出了,try 也检测不到。

    1 虚函数中的异常规范
    C++ 规定,派生类虚函数的异常规范必须与基类虚函数的异常规范一样严格,或者更严格。只有这样,当通过基类指针(或者引用)调用派生类虚函数时,才能保证不违背基类成员函数的异常规范。请看下面的例子:

    class Base{
    public:
        virtual int fun1(int) throw();
        virtual int fun2(int) throw(int);
        virtual string fun3() throw(int, string);
    };
    class Derived:public Base{
    public:
        int fun1(int) throw(int);   //错!异常规范不如 throw() 严格
        int fun2(int) throw(int);   //对!有相同的异常规范
        string fun3() throw(string);  //对!异常规范比 throw(int,string) 更严格
    }
    

    2 异常规范与函数定义和函数声明
    C++ 规定,异常规范在函数声明和函数定义中必须同时指明,并且要严格保持一致,不能更加严格或者更加宽松。

    请看下面的几组函数:

    //错!定义中有异常规范,声明中没有
    void func1();
    void func1() throw(int) { }
    
    //错!定义和声明中的异常规范不一致
    void func2() throw(int);
    void func2() throw(int, bool) { }
    
    //对!定义和声明中的异常规范严格一致
    void func3() throw(float, char*);
    void func3() throw(float, char*) { }
    

    抛弃异常规范

    异常规范的初衷是好的,它希望让程序员看到函数的定义或声明后,立马就知道该函数会抛出什么类型的异常,这样程序员就可以使用 try-catch 来捕获了。如果没有异常规范,程序员必须阅读函数源码才能知道函数会抛出什么异常。

    不过这有时候也不容易做到。例如,func_outer() 函数可能不会引发异常,但它调用了另外一个函数 func_inner(),这个函数可能会引发异常。再如,您编写的函数调用了老式的库函数,此时不会引发异常,但是库更新以后这个函数却引发了异常。总之,异常规范的初衷实现起来有点困难,所以大家达成的一致意见是,最好不要使用异常规范。

    异常规范是 C++98 新增的一项功能,但是后来的 C++11 已经将它抛弃了,不再建议使用。

    另外,各个编译器对异常规范的支持也不一样,请看下面的代码:

    #include <iostream>
    #include <string>
    #include <exception>
    using namespace std;
    
    void func()throw(char*, exception){
        throw 100;
        cout<<"[1]This statement will not be executed."<<endl;
    }
    
    int main(){
        try{
            func();
        }catch(int){
            cout<<"Exception type: int"<<endl;
        }
    
        return 0;
    }
    

    在 GCC 下,这段代码运行到第 7 行时程序会崩溃。虽然 func() 函数中发生了异常,但是由于 throw 限制了函数只能抛出 char*、exception 类型的异常,所以 try-catch 将捕获不到异常,只能交给系统处理,终止程序。

    在 Visual C++ 下,输出结果为Exception type: int,这说明异常被成功捕获了。在 Visual C++ 中使用异常规范虽然没有语法错误,但是也没有任何效果,Visual C++ 会直接忽略异常规范的限制,函数可以抛出任何类型的异常。

    展开全文
  • throw的一些用法

    2021-01-21 19:02:55
    无论是.net还是java,在开发程序时都难免会用到throw关键字,对于初学者一般会认为它与try…catch捆绑在一起,这当然是错误的,事实上,throw的一个最重要的作用就是: 让程序告诉用户一些事情,这些事情一般是开发...
  • 主要介绍了C++编程中异常相关的堆栈展开和throw()异常规范,throw()规范部分文中结合了C++11标准的新特性来讲,需要的朋友可以参考下
  • throw用法

    千次阅读 2018-09-10 14:12:46
    throw 用法 分类 :C++ throw 后面跟一个表达式,catch的时候对应这个表达式类型的引用。 int Func() { throw “this is an error!”; } int main() { try{ Func(); } catch(char* szError) { cout &...

    throw 用法

    分类 :C++

    throw 后面跟一个表达式,catch的时候对应这个表达式类型的引用。

    int Func()
    {
    throw “this is an error!”;
    }

    int main()
    {
    try{
    Func();
    }
    catch(char* szError)
    {
    cout << szError << endl;
    }
    }

    展开全文
  • try/catch/throw

    2021-01-20 13:31:41
    try/catch/throw try/catch/throw的优点: 1.可以自定义抛出异常之后的操作 2.异常抛出后会一直返回调用函数(或者说上一层函数),直到被catch到,所以便可以统一将catch语句写在一起,使代码更加方便整洁。 1....
  • C++ throw(抛出异常)详解

    千次阅读 2020-09-06 22:10:11
    抛出(Throw)–> 检测(Try) --> 捕获(Catch) 异常必须显式地抛出,才能被检测和捕获到;如果没有显式的抛出,即使有异常也检测不到。 在 C++ 中,我们使用 throw 关键字来显式地抛出异常,它的用法为: ...

    在《C++异常处理》一节中,我们讲到了 C++ 异常处理的流程,具体为:
    抛出(Throw)–> 检测(Try) --> 捕获(Catch)

    异常必须显式地抛出,才能被检测和捕获到;如果没有显式的抛出,即使有异常也检测不到。

    在 C++ 中,我们使用 throw 关键字来显式地抛出异常,它的用法为:
    throw exceptionData;

    exceptionData 是“异常数据”的意思,它可以包含任意的信息,完全有程序员决定。exceptionData 可以是 int、float、bool 等基本类型,也可以是指针、数组、字符串、结构体、类等聚合类型,请看下面的例子:

    char str[] = "http://c.biancheng.net";
    char *pstr = str;
    
    class Base
    展开全文
  • throw关键字

    2014-06-20 14:27:05
    Java中的throw与throws的关键字的使用
  • U10316040_HW8_14_4 这是一个练习使用throw将例外再抛出的专案
  • C# 使用throw;throw ex;和 throw new Exception();抛异常区别与建议 之前,在使用异常捕获语句try...catch...throw语句时,一直没太留意几种用法的区别,前几天调试程序时发展找不到异常根源,无意中了解到几种...
  • 1、 thrownewError(); 这个是创建错误,创造一个错误类型抛出 2、throwerror 这个是抛出错误。 问题复现 在工作时遇到了需要抛出异常并且需要自己捕获处理的地方,于是在抛出的地方写下 function parseExcel...
  • throw的用法

    2021-05-11 16:15:20
    throw的用法 throw关键字通常用在方法体中,并且抛出一个异常对象。程序在执行到throw语句时立即停止,它后面的语句都不执行。通过throw抛出异常后,如果想在上一级代码中来捕获并处理异常,则需要在抛出异常的方法...
  • Java 中 try-catch,throw和throws的使用

    千次阅读 多人点赞 2019-09-21 14:29:19
    关于异常的处理有try catch 程序块、throw 、throws。 以下分别对这三种进行介绍。 一、try...catch try-catch用来捕获代码段的异常并做出处理 try-catch代码块分两块,第一块是try{} ,第二块是catch(exception...
  • throw | Error | try catch

    千次阅读 2020-09-16 11:28:47
    JS自定义异常try catchpromise then进入catch try catch try catch是ECMA-262第3版的时候引入的语法,用于捕捉js运行... //但有时会抛出一个异常,要么是由throw语句直接抛出,要么通过调用一个方法间接抛出 }catch(e

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,108,690
精华内容 443,476
关键字:

throw