捕捉异常

import java.io.*;

import text.MyException;

public class Yichang {

    public static void main(String[] args) {

        //捕获异常
        //抛出异常   throw   写在方法体里面           throws   写在方法名字的后面 表示将方法里的异常抛出,抛给它的调用者
        try
        {
            int r = 3 / 1;

            System.out.println("结果 = " + r);

            Exception ex = new Exception("我的异常信息");

            throw ex;

    //        System.out.println("结果 = " + r);//一旦抛出异常,就会停止本段程序,向下运行
        }
        catch(Exception e)
        {
            //处理
            //1、记录日志,文件、数据库       将错误的信息保存
            //2、输出友好的信息提示
            //3、执行的特别代码         将可预料的错误的代码跳过,执行其他的代码,不会使客户感到问题

            System.out.println("     "+e.getMessage());

            //Exception     java 里面表示异常的类,是所有异常的父类

    //        e.getMessage();    //获取其异常信息,将这个信息存放于日志与数据库中,便于查看

    //        e.printStackTrace();//向控制台输出错误信息,将错误信息输出到控制台

    //        throw e;  //抛出异常

        }
        finally //一定会执行的   无论程序是否异常都会执行
        {
            System.out.println("谢谢使用");

    //        System.exit(0);//中断整个程序
        }

        //异常类的抛出
        //自定义异常类,要继承于Exception,这个父类
        try
        {
            int in = 0;
            if(in == 0)
            {
                Exception ex = new Exception("我的错误信息");

                throw ex;
            }

            int r = 3 / 1;

            System.out.println("结果 = " + r);

            MyException me = new MyException("我自定义的异常类");

            throw me;
        }

        catch(IOException e)//子类要放到父类的前方,避免父类将全部代码捕获完毕,导致后方代码无用
        {
            //针对性的处理方法
        }
        catch(Exception e)//可以捕获多个异常
        {
            System.out.println("     "+e.getMessage());
        }

        //空指针异常  对象没有实例化

    }

}
package text;

public class MyException extends Exception {

    public MyException(String mess)
    {
        super(mess);
    }

}
package text;

import java.io.IOException;

public class t20151019 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        file fh = new file("d:/filehelper.txt");

        try
        {
            fh.create();

            fh.edit("大家好");

            System.out.println("输出的内容是:\n"+ fh.readFile());

            fh.addLine("今天天气不错!");

            fh.addLine("心情也不错!");

            System.out.println("文件内容是:"+ fh.readFile());

            fh.delete();        //删除文件

        }
        catch(IOException e)
        {
            System.out.println("创建文件出错!");
        }

    }

}
时间: 2024-10-19 13:31:40

捕捉异常的相关文章

<c:catch/>捕捉异常

<%@ page language="java" contentType="text/html; charset=UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

21、捕捉异常和异常的使用原则

package com.exception.demo; public class Take { // 创建类 /** * 1.捕捉异常( 异常处理器大致分为 try-catch 语句快 和 finally 语句块 ) * 2.以下4种情况不会执行finall语句块 * 2.1.在finally语句块发生了异常 * 2.2.在前面的代码中使用了 System.exit() 退出程序 * 2.3.程序所在的线程死亡 * 2.4.关闭CPU * 3.异常的使用原则: * 1.在当前方法中使用 try

Java try-catch自定义捕捉异常

题目要求:输入数值,90-100输出“优”,80-90输出“良”,70-80输出“中”,60-70输出“及格”,0-60输出“不及格”,输入其他捕捉异常并提示相应信息. 代码如下: 1 import java.util.Scanner; 2 3 @SuppressWarnings("serial") 4 //自定义异常类 5 class TryException extends Exception 6 { 7 /** 8 * 9 */ 10 private static final l

python 捕捉异常

Python中的捕捉异常 (try  except ) 语句: try: #把你要执行的代码放进来 ..... ..... except: #比如try上面的代码出现了异常,就会来到这里 #我们可以打印一句话 print ('error') --------------------------------------------------------------- 又或者说 try: #把你要执行的代码放进来 ..... ..... except typeError as reason #类型

idhttp post 出现exception class EIdSocketError with message &#39;Socket Error # 10054的解决办法(捕捉异常,防止程序挂掉)

由于项目需要.需要向一个地址提交数据.提交的次数很频繁,但是程序经常raised exception class EIdSocketError with message 'Socket Error # 10054Connection reset by peer.' 造成程序异常,停止工作.    于是找到以下解决办法.Exception捕获不到该异常.需要用EIdException来捕获异常.    IDE环境: Delphi XE3 Version 17.0.4625.53395     IN

C#程序如何捕捉未try/catch的异常——不弹“XXX已停止工作”报错框

诚意满满直接上代码: static void Main(string[] args) { //Main函数中增加此句 AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); } 并在Program类(Main函数所在类)中,增加如下函数即可: private static void CurrentDomain_Unhand

springmvc mybatis 声明式事务管理回滚失效,(checked回滚)捕捉异常,传输错误信息

一.知识点及问题 后端框架: Spring .Spring mvc .mybatis 业务需求: client先从服务端获取用户大量信息到client,编辑完毕之后统一Post至服务端,对于数据的改动要么全成功,要么全失败,所以须要使用事务支持. 问题: 配置Spring声明式事务,运行中出现异常未回滚.从网上查询得到一開始是自己的配置出了问题,因为配置文件的载入顺序决定了容器的载入顺序导致Spring事务没有起作用. 详情例如以下: 因为採用的是SpringMVC. MyBatis,故统一採用

什么时候抛异常什么时候捕捉异常?

之前面试遇到这样一个问题,异常有两种处理方式,一种是直接捕捉try catch,一种是直接往外抛throws,那么这两种方式都是什么情况下使用呢 当时一下没反应过来,工作中大多数都是直接捕获,后面才了解到首先你要弄清楚这个功能的位置: 如果这个方法没有人调用,则一定要捕捉不然就抛到jvm来处理了(比如Controller层一般都是要对异常进行捕捉,该打日志的打,该抛前台的抛) 有其他调用者要使用你这个方法,如果这个异常信息是不需要让调用者知道的就直接捕获,比如时间转换用到SimpleDateFo

一些Windows API导致的Crash以及使用问题总结(API的AV失败,可以用try catch捕捉后处理)

RegQueryValueEx gethostbyname/getaddrinfo _localtime64 FindFirstFile/FindNextFile VerQueryValue CreateFileMapping相关 SetDllDirectory Windows API就没有问题.没有BUG吗?答案是否定的!代码都是写出来,怎么可能完全没有问题呢?下面我们就来看看目前发现有哪些Windows API是有问题的,或者说使用上面有误区的. 1.RegQueryValueEx 首先看看