GVKun编程网logo

php异常处理技术,顶级异常处理器 php 自定义异常 c# 异常处理 java 异常处

2

如果您对php异常处理技术,顶级异常处理器php自定义异常c#异常处理java异常处感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于php异常处理技术,顶级异常处理器php自

如果您对php异常处理技术,顶级异常处理器 php 自定义异常 c# 异常处理 java 异常处感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于php异常处理技术,顶级异常处理器 php 自定义异常 c# 异常处理 java 异常处的详细内容,并且为您提供关于-1-6 java 异常简单介绍 java异常 异常体系 Throwable 分类 throws和throw 异常处理 自定义异常、C# 自定义异常、Java - 自定义异常(尚学堂第六章异常机制作业计算平均数)、Java - 自定义异常(尚学堂第六章异常机制作业判断三角形)的有价值信息。

本文目录一览:

php异常处理技术,顶级异常处理器 php 自定义异常 c# 异常处理 java 异常处

php异常处理技术,顶级异常处理器 php 自定义异常 c# 异常处理 java 异常处

php对异常的处理与java一样,用到的是try{}catch(){}

定义顶级异常处理器用到的函数是

set_exception_handler("My_exception");

这里的My_expection是开发者自定义的异常处理函数,既顶级异常处理器,只有当程序中没有函数来处理异常才有顶级异常处理器来处理异常,如果没有定义顶级异常处理器,则由系统默认的异常处理器来处理异常

举例说明:

立即学习“PHP免费学习笔记(深入)”;

php 异常处理机制,php 错误处理 异常,php 异常处理,php 异常,php 错误 异常 区别,php 自定义异常,c# 异常处理,java 异常处

<meta http-equiv="content-type" c>
登录后复制
<span>php
    </span><span>set_exception_handler</span>("My_expection"<span>);
    </span><span>function</span><span> My_expection(){
        </span><span>echo</span> "这里是顶级异常处理器"<span>;
    }
    </span><span>try</span><span>{
        nohello(</span>"hello"<span>);
    }</span><span>catch</span>(<span>Exception</span><span>$e</span><span>){
        </span><span>throw</span><span>$e</span><span>;
    }
  </span><span>function</span> nohello(<span>$nohello</span><span>){
          </span><span>if</span>(<span>$nohello</span> == "hello"<span>){
              </span><span>throw</span><span>new</span><span>Exception</span>("不能输入hello"<span>);
          }</span><span>else</span><span>{
            </span><span>echo</span> "输入成功"<span>;
        }
    }
</span>?&gt;
登录后复制

php 异常处理机制,php 错误处理 异常,php 异常处理,php 异常,php 错误 异常 区别,php 自定义异常,c# 异常处理,java 异常处

转载自:http://blog.sina.com.cn/s/blog_641d5693010121cr.html

以上就介绍了php异常处理技术,顶级异常处理器,包括了异常处理,php方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

-1-6 java 异常简单介绍 java异常 异常体系 Throwable 分类 throws和throw 异常处理 自定义异常

-1-6 java 异常简单介绍 java异常 异常体系 Throwable 分类 throws和throw 异常处理 自定义异常

 
异常
 
异常:异常就是Java程序在运行过程中出现的错误。
异常由来:问题也是现实生活中一个具体事务,也可以通过java 的类的形式进行描述,并封装成对象。
其实就是Java对不正常情况进行描述后的对象体现。
Throwable
        |--Error        严重问题,我们不处理。
        |--Exception
                |--RuntimeException        运行期异常,我们需要修正代码
                |--非RuntimeException 编译期异常,必须处理的,否则程序编译不通过
 
 
Exception和Error的子类名都是以父类名作为后缀。
 
Java中的异常被分为两大类:编译时异常和运行时异常。
所有的RuntimeException类及其子类的实例被称为运行时异常,其他的异常就是编译时异常
编译时异常
•Java程序必须显示处理,否则程序就会发生错误,无法通过编译
运行时异常
•无需显示处理,也可以和编译时异常一样处理
 
 
Throwable基本方法
getMessage()
•获取异常信息,返回字符串。
toString()
•获取异常类名和异常信息,返回字符串。
printStackTrace()
•获取异常类名和异常信息,以及异常出现在程序中的位置。返回值void。
printStackTrace(PrintStream s)
•通常用该方法将异常内容保存在日志文件中,以便查阅。
 
 
throws和throw
throws
•用在方法声明后面,跟的是异常类名
•可以跟多个异常类名,用逗号隔开
•表示抛出异常,由该方法的调用者来处理
•throws表示出现异常的一种可能性,并不一定会发生这些异常
throw
•用在方法体内,跟的是异常对象名
•只能抛出一个异常对象名
•表示抛出异常,由方法体内的语句处理
•throw则是抛出了异常,执行throw则一定抛出了某种异常 
 
异常处理过程
 
JVM的默认处理
        把异常的名称,原因,位置等信息输出在控制台,但是程序不能继续执行了。
自己处理
        try...catch...finally
                自己编写处理代码,后面的程序可以继续执行
        throws
                把自己处理不了的,在方法上声明,告诉调用者,这里有问题
 

try

{

 

需要检测的代码;

}

catch

(异常类  变量)

{

 

异常处理代码;

}

finally

{

 

一定会执行的代码; 

}

Finally代码块控制的语句体一定会执行

只有一种情况不会被执行。就是在之前执行了System.exit(0)

主要用于释放资源

 
常见变形形式
                        try...catch...finally
                        try...catch...
                        try...catch...catch...
                        try...catch...catch...fianlly
                        try...finally
 
 
 
自定义异常
自定义类继承Exception或者其子类,只需要提供无参构造和一个带参构造即可
通过构造函数定义异常信息。

例:

Class DemoException extends Exception

{

  DemoException(String message)

  {

  super(message);

  }

}

 

通过throw将自定义异常抛出。
 
RuntimeException以及其子类如果在函数中被throw抛出,可以不用在函数上声明。
1.父的方法有异常抛出,子的重写方法在抛出异常的时候必须要小于等于父的异常,也就是必须抛出相同的异常或异常的子类
2.父的方法没有异常抛出,子的重写方法不能有异常抛出,如果子类方法内有异常发生,那么子类只能try,不能throws
3.父的方法抛出多个异常,子的重写方法必须比父少或者小,不能抛出新的异常
 

C# 自定义异常

C# 自定义异常

 

1、自定义异常类

1.1 为什么要自定义异常类

(1)没有具体系统异常相对应

(2)不希望在Catch块中处理

(3)希望能明确标志错误种类的异常

1.2 自定义异常类定义步骤

继承自System.ApplicationException类,并使用Exception作为后缀名。

1.3 自定义异常的准则

 

分享图片

 

自定义异常:

class MyException : ApplicationException
    {
        public string error;
        private Exception innerException;

        public MyException() { }
        public MyException(string msg) :base(msg)
        {
            this.error = msg;
        }
        public MyException(string msg,Exception innerException):base(msg,innerException)
        {
            this.innerException = innerException;
            error = msg;
        }
        public string GetError()
        {
            return error;
        }
    }

测试:

  class Program
    {
        static void Main(string[] args)
        {
            try
            {
                // 无参构造对象
                //throw new MyException();
                //throw new MyException("我的错误哦");
                throw new MyException("我的错误",new Exception("这是Exception的错误"));
            }
           
            catch (MyException e) 
            {
                //Console.WriteLine(e.GetError());
                Console.WriteLine(e.InnerException.Message);
            }
            //*/
            /*
           //因为Exception是MyException父类,所以如果这里是Exception也能捕获到MyException的错误
           //前提是MyException必须初始化父类Exception构造函数,即 public MyException(string msg) :base(msg)
           catch (Exception e)
           {
               Console.WriteLine(e.Message);
           }
           //*/

            Console.ReadKey();
        }
    }

Java - 自定义异常(尚学堂第六章异常机制作业计算平均数)

Java - 自定义异常(尚学堂第六章异常机制作业计算平均数)

 编写一个计算N个学生分数平均分的程序。程序应该提示用户输入N的值,如何必须输入所有N个学生分数。如果用户输入的分数是一个负数,则应该抛出一个异常并捕获,提示“分数必须是正数或者0”。并提示用户再次输入该分数。

import java.util.Scanner;

public class TestInputScore {
    public static void main(String[] args) {
        @SuppressWarnings("resource")
        Scanner input = new Scanner(System.in);
        
        System.out.println("要计算几个学生分数的平均数?");
        float n = input.nextFloat();
        
        System.out.println("请输入:" + (int)n + "个学生分数");
        float sum = 0;
        float tmp;
        for(int i=0; i<n;) {
            tmp = input.nextFloat();
            if(tmp<0) {
                try {
                    throw new InputScoreException("分数必须是正数或者0");
                }catch(Exception e) {
                    e.printStackTrace();
                    System.out.println();
                    System.out.println("请重新输入分数");
                    continue;
                }
            }else {
                sum += tmp;
                i++;
            }
        }
        
        System.out.print("学生分数平均分为:" + sum/n);
    }


}

@SuppressWarnings("serial")
class InputScoreException extends Exception{

    public InputScoreException() {
        super();
        // TODO Auto-generated constructor stub
    }

    public InputScoreException(String message) {
        super(message);
        // TODO Auto-generated constructor stub
    }
    
}

 

Java - 自定义异常(尚学堂第六章异常机制作业判断三角形)

Java - 自定义异常(尚学堂第六章异常机制作业判断三角形)

写一个方法 void isTriangle (int a,int b,int c),判断三个参数是否能构成一个三角形, 如果不能则抛出异常 IllegalArgumentException,显示异常信息 “a,b,c 不能构成三角形”,如果可以构成则显示三角形三个边长,在主方法中得到命令行输入的三个整数, 调用此方法,并捕获异常。

import java.util.Scanner;

public class TestTriangle {
    public static void main(String[] args) {
        System.out.print("请输入a, b, c:");
        Scanner input = new Scanner(System.in);
        int a = input.nextInt();
        int b = input.nextInt();
        int c = input.nextInt();

        isTriangle(a, b, c);
        
    }
    
    static void isTriangle(int a, int b, int c) {
        if(a+b<c||a+c<b||b+c<a) {
                try {
                    throw new IllegalAgeException("a,b,c不能构成三角形");
                }catch(Exception e) {
                    e.printStackTrace();
                }
        }else {
            System.out.println("a, b, c构成三角形");
        }
    }
}

class IllegalArgumentException extends Exception{

    public IllegalArgumentException() {
        super();
        // TODO Auto-generated constructor stub
    }

    public IllegalArgumentException(String message) {
        super(message);
        // TODO Auto-generated constructor stub
    }
    
}

 

今天关于php异常处理技术,顶级异常处理器 php 自定义异常 c# 异常处理 java 异常处的介绍到此结束,谢谢您的阅读,有关-1-6 java 异常简单介绍 java异常 异常体系 Throwable 分类 throws和throw 异常处理 自定义异常、C# 自定义异常、Java - 自定义异常(尚学堂第六章异常机制作业计算平均数)、Java - 自定义异常(尚学堂第六章异常机制作业判断三角形)等更多相关知识的信息可以在本站进行查询。

本文标签: