精华内容
下载资源
问答
  • java获取文件名称乱码

    2020-09-30 09:33:19
    ls查看文件列表,显示很多问号,常用连接工具换了常用的工具切换了几种常用编码去连接的时候查看都是乱码,但是使用SSH Secure File Transfer Client去连接的时候可以看到正确的文件名,使用java 程序去获取文件名...
  • 获取java程序异常详细信息

    千次阅读 2018-10-12 11:08:05
    这里给出一个通用的异常信息获取工具类,main函数给出了demo,可以看到效果 /** * 项目名称(中文) * 项目名称(英文) * Copyright (c) 2018 ChinaPay Ltd. All Rights Reserved. */ package ...

    捕获异常信息的详细信息,有助于我们排查问题。这里给出一个通用的异常信息获取工具类,main函数给出了demo,可以看到效果

    /**
     * 项目名称(中文)
     * 项目名称(英文)
     * Copyright (c) 2018 ChinaPay Ltd. All Rights Reserved.
     */
    package com.figo.study.utils;
    
    import java.io.ByteArrayOutputStream;
    import java.io.PrintStream;
    import java.io.PrintWriter;
    import java.io.StringWriter;
    
    /**
     * 获取抛出的异常详细信息 .
     * 
     * @author figo
     * @version 1.0 2018-10-12 改订
     * @since 1.0
     */
    public class ExceptionDetailUtil {
    
        /**
         * 除0测试.
         * 
         * @param args
         */
        public static void main(String[] args) {
            try {
                int a = 10, b = 0;
                int c = a / b;
                System.out.println(c);
            } catch (Exception e) {
                System.out.println(e.getStackTrace());// 这么写是不能打印出详细错误信息的
                System.out.println(e.getMessage());// 这么写只能知道出了什么错,也不能打印出详细错误信息的
                System.out.println(getExceptionDetail(e));//这个可以
                System.out.println(getThrowableDetail(e));//这个可以
            } catch (Error e) {
                System.out.println(getExceptionDetail(e));
            }
    
        }
    
        /**
         * 获取异常详细信息,知道出了什么错,错在哪个类的第几行 .
         * 
         * @param ex
         * @return
         */
        public static String getExceptionDetail(Exception ex) {
            String ret = null;
            try {
                ByteArrayOutputStream out = new ByteArrayOutputStream();
                PrintStream pout = new PrintStream(out);
                ex.printStackTrace(pout);
                ret = new String(out.toByteArray());
                pout.close();
                out.close();
            } catch (Exception e) {
            }
            return ret;
        }
    
        /**
         * 获取异常详细信息,知道出了什么错,错在哪个类的第几行 .
         * 
         * @param ex
         * @return
         */
        public static String getExceptionDetail(Error ex) {
            String ret = null;
            try {
                ByteArrayOutputStream out = new ByteArrayOutputStream();
                PrintStream pout = new PrintStream(out);
                ex.printStackTrace(pout);
                ret = new String(out.toByteArray());
                pout.close();
                out.close();
            } catch (Exception e) {
            }
            return ret;
        }
    
        /**
         * 获取异常详细信息,知道出了什么错,错在哪个类的第几行 .
         * 
         * @param e
         * @return
         */
        public static String getThrowableDetail(Throwable ex) {
            StringWriter sw = new StringWriter();
            try {
                PrintWriter pw = new PrintWriter(sw, true);
                ex.printStackTrace(pw);
                pw.flush();
                sw.flush();
            } catch (Exception e) {
    
            }
            return sw.toString();
        }
    }
    

    运行效果

    展开全文
  • 方法一:new Exception().getStackTrace()[0].getMethodName(),代价有点大,需要生成一个异常的实例。 方法二:JDK1.5之后可用, Thread.currentThread().getStackTrace()[1].getMethodName(),具体使用数组的那个...

    方法一:new Exception().getStackTrace()[0].getMethodName(),代价有点大,需要生成一个异常的实例。

    方法二:JDK1.5之后可用, Thread.currentThread().getStackTrace()[1].getMethodName(),具体使用数组的那个元素和JVM的实现有关,我在SUN JDK6下面测试的是第二个元素,具体说明可以查看Thread.getStackTrace方法的javadoc。

    展开全文
  • 方法一:new Exception().getStackTrace()[0].getMethodName(),代价有点大,需要生成一个异常的实例。 方法二:JDK1.5之后可用, Thread.currentThread().getStackTrace()[1].getMethodName(),具体使用数组的...
    方法一:new Exception().getStackTrace()[0].getMethodName(),代价有点大,需要生成一个异常的实例。

    方法二:JDK1.5之后可用, Thread.currentThread().getStackTrace()[1].getMethodName(),具体使用数组的那个元素和JVM的实现有关,我在SUN JDK6下面测试的是第二个元素,具体说明可以查看Thread.getStackTrace方法的javadoc。
    展开全文
  • * 获取指定对象中指定属性名的值 * * @param obj 对象 * @param propertyName 属性名称 * @return 属性值 * @throws IllegalAccessException 非法访问异常 */ public static Object getPropertyValue(Object...

    先贴代码,方法使用注释已经写得很清楚了

        /**
         * 获取指定对象中指定属性名的值
         *
         * @param obj          对象
         * @param propertyName 字段名
         * @return 属性值
         * @throws IllegalAccessException 非法访问异常
         */
        public static Object getPropertyValue(Object obj, String propertyName) throws IllegalAccessException {
            Class<?> aClazz = obj.getClass();
            Field field;
            if ((field = getField(aClazz, propertyName)) == null) {
                return null;
            }
            field.setAccessible(true);
            return field.get(obj);
        }
    
        /**
         * 获取class中指定字段名的字段对象,找不到往父类中找
         *
         * @param clazz        class
         * @param propertyName 字段名
         * @return 字段对象
         */
        public static Field getField(Class<?> clazz, String propertyName) {
            if (clazz == null) {
                return null;
            }
            try {
                return clazz.getDeclaredField(propertyName);
            } catch (NoSuchFieldException e) {
                return getField(clazz.getSuperclass(), propertyName);
            }
        }
    
        /**
         * 根据指定值获取指定对象中的字段名
         *
         * @param obj   对象
         * @param value 字段对应的值
         * @return 字段名
         * @throws IllegalAccessException 非法访问异常
         */
        public static String getFieldNameByValue(Object obj, String value) throws IllegalAccessException {
            Class<?> aClass = obj.getClass();
            Field[] declaredFields = getDeclaredFields(aClass);
            if (declaredFields != null) {
                for (Field declaredField : declaredFields) {
                    String name = declaredField.getName();
                    Object propertyValue = getPropertyValue(obj, name);
                    if (propertyValue instanceof String && propertyValue.toString().equals(value)) {
                        return name;
                    }
                }
            }
            return null;
        }
    
        /**
         * 获取此class中的所有字段,找不到往父类找,注意有可能发生堆栈溢出错误{@link StackOverflowError}
         *
         * @param aClass class
         * @return 字段数组
         */
        public static Field[] getDeclaredFields(Class<?> aClass) {
            if (aClass == null) {
                return null;
            }
            Field[] declaredFields = aClass.getDeclaredFields();
            return declaredFields.length == 0 ? getDeclaredFields(aClass.getSuperclass()) : declaredFields;
        }
    

    PS:由于实际业务问题目前只支持String类型的获取

    展开全文
  • 如果没有引发异常,则将指定的属性设置为给定值。 参数: key-属性的名称。 value–系统属性的值。 返回: 系统属性的上一个值,如果没有,则为null。 抛出: SecurityException–如果安全管理器存在并且其...
  • 获取当前线程的名称 创建多线程,新建一个MyThread的类继承Thread这个类,并重写里面的run方法 里面获取线程的名称 再创建一个线程 第二个线程名称叫做Thread-1 第三个线程就...
  • 方法一:new Exception().getStackTrace()[0].getMethodName(),代价有点大,需要生成一个异常的实例。 方法二:JDK1.5之后可用, Thread.currentThread().getStackTrace()[1].getMethodName(),具体使用数组的那个...
  • 反射机制:Java反射机制是在运行状态中,对于任意一个类,如果知道一个类的名称,都能够知道这个类的所有属性和方法;对于任意一个对象,如果知道一个实例对象,都能够调用它的任意一个方法和属性;这种动态获取的...
  • Java获取Exception的详细信息

    千次阅读 2019-11-06 22:55:37
    而通过的Exception.getMessage()方法只能获得异常名称而不能获取哪里出现的异常,对于排错意义不大。 //1、 public String getTrace(Throwable t) { StringWriter stringWriter= new StringWriter(); ...
  • 该代码在https://blog.csdn.net/ylforever/article/details/80955595的基础上做了优化,新增根据sheet页名称获取工作表和部分异常处理。 只需三行代码即可获取excel单元格数据 ParseXlsxExcel excel = new ...
  • 使用此异常捕获,请在隐私说明中描述出异常崩溃获取手机特征值信息等说明。 配套的Server端请看过来: 配套的WEB前端页面请看过来: Gradle 引用 在根build.gradle中添加 allprojects { repositories { ... maven { ...
  • 只会获得具体的异常名称. 比如说NullPoint 空指针,就告诉你说是空指针... (2)e.getCause() (3)e.getCause().getMessage(); 总结: e.toString()获取的信息包括异常类型和异常详细消息, 而e.getMessage()...
  • 众所周知,Java 8 Stream,是我们Java程序员的福音,可以简洁、高效的编写代码,可变通性的帮助我们开发项目,实现业务。然而,现实是,提供具体快捷方式的同时,也存在着潜在的危险,就比如说Stream中的toMap操作,...
  • 发现打印的结果中只有异常名称,却没有异常的信息。因为自定义的异常并未定义信息。 如何定义异常信息呢? 因为父类中已经把异常信息的操作都完成了。 所以子类只要在构造时,将异常信息传递给父类通过super语句...
  • 我们在开发中如果要获取本地机器的ip地址时,可以通过InetAddress.getLocalHost()发放来获取,但是这样可能碰到的一个运行时异常就是本地配置文件中相应的配置,就会产生UnknownHostException 的异常 ...
  • Java Enum是一个非常...问题很简单:我们应该如何通过名称或值获取枚举,并忽略不存在的值?枚举这是我们将在示例中使用的枚举。 挑选更复杂的枚举是为了也可以通过其他字段展示查找枚举。public enum CardColor {...
  • 获取类的方法之后可以根据方法名称来执行方法 图9-11 运行结果 本案例中调用了两个方法首先因为Java类会在类中没有声明构造方法的时候自动为类创建一个无参的构造函数所以首先使用newInstance)方法创建一个该类型的...
  • (修饰符,返回值,方法名称,参数列表,抛出的异常)。 ############################################################## 三、 转载于:https://www.cnblogs.com/igoodful/p/9193100.html...
  • nested exception is java.sqlSQLException: ORA-00955: 名称已由现有对象使用 求大神看下。 代码如下: ``` package utils.spring; import org.springframework.beans.factory.InitializingBean; ...
  • 所以将需要校验的参数值实例化到实体类中,然后通过反射拿到这个实体类的属性进行非空校验(每个类型的交易定义一个参数校验实体类并继承一个基类),如果参数为空,则拿到该属性的名称及中文释义并抛出异常。...
  • 异常的概述和分类、JVM默认是如何处理异常的、File类的概述和构造方法、File类的创建功能、File类的重命名和删除功能、File类的判断功能、File类的获取功能、文件名称过滤器的概述及使用
  • Java Enum是一个非常有用的功能,但很多人通常并不能充分利用,这是因为一些库不会优先择用该功能。通常我们也可以正确使用Java枚举功能,但在...问题很简单:我们应该如何通过名称或值获取枚举,并忽略不存在的值?
  • 编写一个Goods类,其中包括行李名称和是否为危险品的属性及对应的设置和获取方法。 编写一个Machine类,其中的checkGoods方法当发现行李为危险品时将抛出DangerException异常。 在主类的main()方法中定义n件行李,...
  • 这部分代码演示了如何获取属性信息,方法信息,接口,,,其他比如注解,父类,异常等信息获取方式都一样,只不过方法名不同,get加相应的英文名就是哪个方法了,不同的是 getDeclared+名称 这种方法是获取本类所有...
  • 递归根据节点id得到节点所有父节点名称(java内部类的使用) 节点id获取所有父节点名称 // /** * 递归得到当前节点的所有父节点 * @param Id 当前节点 * @return 所有父节点 * @throws Exception 抛出的异常 ...
  • JAVA_API1.6文档(中文)

    万次下载 热门讨论 2010-04-12 13:31:34
    java.util.prefs 此包允许应用程序存储并获取用户和系统首选项和配置数据。 java.util.regex 用于匹配字符序列与正则表达式指定模式的类。 java.util.spi java.util 包中类的服务提供者类。 java.util.zip 提供...
  • A:异常的概述: 异常就是Java程序在运行过程中出现的错误。 B:异常的分类: 举例:张三骑自行车旅游 C:异常的继承体系 异常的基类: Throwable 严重问题: Error 不予处理,因为这种问题一般是很严重的问题,比如: 内存...
  • 异常信息,主要原因是linux限制访问地址,可以通过修改hosts文件完成 解决方案:(1)在本机ping一下无法访问的url,获取ip  (2) 在linux中vim hosts 在末行加入 ip url 保存

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 305
精华内容 122
关键字:

java获取异常名称

java 订阅