我们也可以写代码来抛出异常,抛出异常的语句时throw,其格式如下:

throw 异常类的对象名

用throw抛出异常,一般放在方法内部。一个程序可以有多个throw。throw语句执行时,其后面的代码不再执行,程序转到异常处理程序段。

需要注意一下两点:

第一throw后面的异常类对象名必须是Throwable类的子类或对象。例如:“throw new Expection(“throw抛出异常!”);”是正确的,因为创建的是Expection类的对象;而“throw new String(“throw抛出异常!”);”是错误的,这是由于throw语句后面的字符串类String的对象,而不是异常类Expection的对象。

第二:throw一旦抛出异常,后面的语句就不执行了。例如下面的程序:

class myExpection extends Expection

{

}

class Myclass

{

void method()

{

MyExpection e=new MyExpection();

if(){

throw e;

}

System.out.println("ddf");//不再执行

}

}

这个程序段中,首先创建了一个自定义的异常类对象e,然后抛出该异常类的对象,这时最后输出一条语句“System.out.println("ddf");”不再执行。

throw 语句的更多相关文章

  1. try{}、catch(){}、throw语句

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  2. java异常处理-finally中使用return和throw语句

    java异常语句中的finally块通常用来做资源释放操作,如关闭文件.关闭网络连接.关闭数据库连接等.正常情况下finally语句中不应该使用return语句也不应该抛出异常,以下讨论仅限于java ...

  3. SQL Server2012中的Throw语句尝试 RAISERROR和THROW比较

    SQL SERVER2012实现了类似C#抛出异常的Throw语句.相比较于SQL Server2005之前使用@@ERROR,和SQL Server2005之后使用RAISERROR()引发异常都是 ...

  4. VC6下 try catch 在release下的杯具(默认情况下,要加上throw语句catch才不会被优化掉)

    IDE:VC6 今天遇到一个小问题,把我郁闷了好久,××医生的VulEngine不时在wcsstr处发生crash,加了一番强大的参数检查后,再加上了强大的try catch,其实不是很喜欢用try和 ...

  5. try、catch 和 throw 语句 (了解)

    C++ 异常使用 try.catch 和 throw 关键字. 引发表达式指示错误或异常情况. 可以将任何类型的对象用作引发表达式的操作数. 此对象通常用于传达有关错误的信息. 通常,应使用在标准库中 ...

  6. C# 自定义异常类 throw语句抛出异常

    Exception概述: 异常(Exception)一般分为两大类SystemException.ApplicationException,前者是预定义的异常类,后者是用户自定义异常类时需要继承的类 ...

  7. Error js内置错误 js处理错误流程 Throw语句

    Exceptional Exception Handling in JavaScript       MDN资料 Anything that can go wrong, will go wrong. ...

  8. JS Error 内置异常类型 处理异常 Throw语句

    Exceptional Exception Handling in JavaScript       MDN资料 Anything that can go wrong, will go wrong. ...

  9. Js中的三个错误语句:try、catch、throw

    Js中的三个错误语句:try.catch.throw

随机推荐

  1. MySQL update语句和insert插入语句写法完全不一样啊,不要搞混

    1.mysql update 语句: update user set name = 'xiaoming',age = 18 where uid = 3000; 更新记录时update操作也不需要写ta ...

  2. P1091 合唱队形

    水题 #include <bits/stdc++.h> using namespace std; const int maxn = 105; int main(int argc, char ...

  3. Structured Streaming Programming Guide

    https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html http://www.slidesha ...

  4. Lazarus中Base64的操作

    在字符串处理中,我们经常需要对文件编码然后再进行传输,通常会使用base64编码,在FreePascal中默认集成了这个单元,我们来介绍如何使用: 首先需要在引用单元的时候使用: use base64 ...

  5. Java Map遍历方式的选择

    [原文] 1. 阐述 对于Java中Map的遍历方式,很多文章都推荐使用entrySet,认为其比keySet的效率高很多.理由是:entrySet方法一次拿到所有key和value的集合:而keyS ...

  6. SQLite(快速上手版)笔记

    原文 1. SQL语法关键字 关键字 描述 Create Table 创建数据表 Alter Table 修改数据表 Drop Table 删除数据表 Create Index 创建索引 Drop I ...

  7. Ajax 填充 前端页面

  8. SecureCRT SSH VMware Ubuntu

    Ubuntu 10.4 装完后网络OK. NAT模式下, 可以上网. 宿主机和客户机可以彼此ping通. 主要是检查SSH服务, 和防火墙是否关闭(UBUNTU 默认没有安装SSH, 默认启动了防火墙 ...

  9. php--yii框架表单验证

    在视图层利用表单小部件生成表单时,field只能是数据库中存在的, 例如: use yii\helpers\Html; use yii\widgets\ActiveForm; use yii\capt ...

  10. IOS测试程序运行耗时

    iOS设备相对于电脑,内存和处理能力有限,所以一段代码或者程序运行的时间需要时刻注意,这里提供两种获取精确时间的方法. 方法一:使用系统时间 NSDate* tmpStartData = [[NSDa ...