Exception汇总

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/MrwanZH/article/details/82849127

一、com.microsoft.sqlserver.jdbc.TDSChannel enableSSL
警告: TDSChannel ( ConnectionID:2 TransactionID:0x0000000000000000) SSL handshake failed: java.lang.RuntimeException: Could not generate DH keypair

解决方案https://blog.csdn.net/bad00temper/article/details/72478302

自己解决方案:下载jdk1.7

---------------------------------------------------------------------------------------------------------------------------------------------------------------

二、JavaWeb应用出现HTTP 500-Unable to compile class for JSP 错误 的解决

转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6383192.html

      把本机的web项目部署到了云主机的tomcat上。之后通过浏览器访问时,如果出现  HTTP 500-Unable to compile class for JSP 的错误,应该怎么解决呢?

       通常,造成这种错误的原因是你开发时所用的jdk版本以及本地测试时的tomcat版本比云主机上搭建的jdk版本以及tomcat版本低造成的

      解决方案:重新搭建云主机的jdk以及tomcat,版本选择开发时myeclipse所用jdk版本。

     1:查看开发所用jdk版本。

     在myeclipse中点击File,Properties,左侧栏选择BuildPath。

     

     如上图,JRE System Library[Sun JDK 1.6.0_13]即为我的项目编译时所用的JDK版本。

    2:根据上面得到的JDK版本,下载相应的tar.gz文件,参照博文  http://www.cnblogs.com/ygj0930/p/6377878.html              搭建JDK。

    3:根据JDK版本选择tomcat:一般选择与JDK版本相应的tomcat。比如这里JDK6,所以我搭建了tomcat6。当然也可以选择tomcat7,8,9。记住,tomcat的版本必须大于等于JDK的版本。

   4:重新部署web项目。

---------------------------------------------------------------------------------------------------------------------------------------------------------------

三、程序报错快速定位的心得

1.报错日志中找到最顶层错误信息,并定位到相应错误行,此处可以排除更深层的报错,因为当前行是报错位置,所以不是更深层的错误。更深层指自己写的其他调用方法

2.根据Exception的具体错误信息排查错误,如nullpointerexception一定是某个对象为null,所以null.func()就会报错

---------------------------------------------------------------------------------------------------------------------------------------------------------------

四、POI读取excel文件单元格内容时要根据单元格的格式调用不同方法读取

CellType cellType = cell.getCellTypeEnum();
        switch (cellType) {
            case STRING:
                return cell.getStringCellValue();
            case NUMERIC:
                 return String.valueOf(cell.getNumericCellValue());
            case BOOLEAN:
                return String.valueOf(cell.getBooleanCellValue());
            default:
                return "";
        }

---------------------------------------------------------------------------------------------------------------------------------------------------------------

五、POI对cell判null条件,单元格没有做任何操作就是null,修改了单元格的文本类型也不为null

---------------------------------------------------------------------------------------------------------------------------------------------------------------

六、svn更新项目后,eclipse内一定要F5刷新下项目。

---------------------------------------------------------------------------------------------------------------------------------------------------------------

七、java.sql.BatchUpdateException: 将截断字符串或二进制数据。

字段长度大于数据库字段最大允许长度

1、直接取一条数据,insert,每次insert在values里加一个字段,判断是哪个字段出问题

2、再可用java代码解析数据判断是否是哪条数据超出了

3、char和varchar的区别:(1)、char存英文(ASCII)1个字节,中文2个字节;varchar存中英文都2个字节。

                                      (2)、定义一个char[10]和varchar[10],如果存进去的是‘csdn’,那么char所占的长度依然为10,除了字符‘csdn’外,后面跟六个空格,而varchar就立马把长度变为4了

                                           (3)、取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的。

                                           (4)、char的存取数度比varchar要快得多,因为其长度固定,方便程序的存储与查找;

                                           (5)、char长度固定,会有多余的空格占位符占据空间,以空间换时间,varchar以空间效率为首位。

4、UTF-8 中文占3个字节,超大字符集中的更大多数汉字要占4个字节

      GBK、GB2312、GB18030占2个字节

      iso8859-1无法表示汉字,只能转为问号,拉丁字符(ASCII字符)占1个字节

sqlserver查看字符串编码:SELECT  COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage')
下面是查询结果:
936 简体中文GBK
950 繁体中文BIG5
437 美国/加拿大英语
932 日文
949 韩文
866 俄文
65001 unicode UFT-8

---------------------------------------------------------------------------------------------------------------------------------------------------------------

猜你喜欢

转载自blog.csdn.net/MrwanZH/article/details/82849127