概述
文章目录
- Java 异常处理的注意事项
- 1、尽量不要使用e.printStackTrace(),而是使用log打印。
- 2、禁止在线上环境开启debug
- 2、用log正确打印异常格式
- 3、不要用一个Exception捕捉所有可能的异常
- 4、记得使用finally关闭流资源或者直接使用try-with-resource
- 5、注意异常对你的代码层次结构的侵染(早发现早处理)
- 开发常识
- try、catch中finally和return执行顺序
- 当switch括号内的变量类型为String并且此变量为外部参数时,必须先进行null 判断,否则会报空指针异常。
- idea常见配置及问题
- 自动生成注释
- 给class加注释模板
- 给方法添加注释
- idea用快捷键自动生成序列化id
- idea在windows编辑换行时,生成乱码^M(CRLF->LF)
- idea在工具栏中显示快速创建包和类的图标
- idea常用快捷键
- 问题
- 1. Intellij IDEA Cannot resolve symbol XXX
- 2.Error running ‘xxx’: Command line is too long. Shorten command line for xxx or also for Spring Boot default configuration?
- Eclipse
- 添加comment
- eclipse启动时卡住org.eclipse.jdt.core
- eclipse安装反编译插件
- 常见问题
- java.lang.InternalError: name is too long to represent
Java 异常处理的注意事项
1、尽量不要使用e.printStackTrace(),而是使用log打印。
e.printStackTrace()语句产生的字符串记录的是堆栈信息,如果信息太长太多,字符串常量池所在的内存块没有空间了,即内存满了,那么,用户的请求就卡住啦~
2、禁止在线上环境开启debug
2、用log正确打印异常格式
log.info(“你的程序有异常啦,{}”,e);
3、不要用一个Exception捕捉所有可能的异常
用基类 Exception 捕捉的所有可能的异常,如果多个层次都这样捕捉,会丢失原始异常的有效信息。
4、记得使用finally关闭流资源或者直接使用try-with-resource
5、注意异常对你的代码层次结构的侵染(早发现早处理)
反例:
public UserInfo queryUserInfoByUserId(Long userid) throw SQLException { //根据用户Id查询数据库}
正例:
public UserInfo queryUserInfoByUserId(Long userid) {
try{//根据用户Id查询数据库
}catch(SQLException e){
log.error("查询数据库异常啦,{}",e);
}finally{
//关闭连接,清理资源
}}
理由:
我们的项目,一般都会把代码分 Action、Service、Dao 等不同的层次结构,如果你是DAO层处理的异常,尽早处理吧,如果往上 throw SQLException,上层代码就还是要try catch处理啦,这就污染了你的代码~
开发常识
try、catch中finally和return执行顺序
- 当try和catch中有return时,finally仍然会执行。
- 不管有没有异常,finally块中代码都会执行
当switch括号内的变量类型为String并且此变量为外部参数时,必须先进行null 判断,否则会报空指针异常。
反例:猜猜下面的代码输出是什么?(报空指针异常)
public class SwitchString {
public static void main(String[] args) {
method(null); }
public static void method(String param) { switch (param) {
// 肯定不是进入这里
case "sth": System.out.println("it's sth"); break;
// 也不是进入这里
case "null": System.out.println("it's null"); break;
// 也不是进入这里
default: System.out.println("default");
} }
}
idea常见配置及问题
自动生成注释
给class加注释模板
/**
*@ClassName ${NAME}
*@Description TODO
*@Author xxx
*@Date ${DATE} ${TIME}
*@Version 1.0
**/
Settings–>File And Code Templates
在右边弹出的选择:Files–>Class,添加以上信息
给方法添加注释
Settings–> Editor --> Live Templates
新建Template Group,然后在其下新建Live Template,
Abbreviation为快捷键,如下,输入cjm(此为快捷键,方法内输入即生成方法注释)
/**
* @Description: TODO
* @Author:amunamuna
* @Date:$date$ $time$
* @Parameters: $tags$
* @Return:$return_type$
**/
注意:这里直接在方法外面加注释,获取不到参数和返回值,因为参数和返回的值只有在函数作用域内,intellij才能找到。所以快捷键最好还是在方法内部敲,再把注释复制出去。
idea用快捷键自动生成序列化id
类继承了Serializable接口之后,使用alt+enter快捷键自动创建序列化id
进入Settings→Editor–>Inspections,在右边界面选择:
Java->serialization issues→勾选serializable class without ‘serialVersionUID’
之后,光标放在类名上,再次按Alt+Enter键,这个时候可以看到"Add serialVersionUID field"提示信息
idea在windows编辑换行时,生成乱码^M(CRLF->LF)
在window下开发有一个大坑,就是换行默认是CRLF,也就是回车换行,但是Linux下只有换行LF,这样代码提交后,会出现编译问题,所以最好的办法是在IDEA下设置默认为LF。
第一步:File->Settings
第二步:Editor->Code Style
可以看到,默认是System-Dependent,这个其实还是很厉害的,根据系统自动配置,但是你是windows系统,默认是CRLF,服务器是Linux,你就得自己换了。
设置成下面这样【Unix and macOS(n)】,保存。
idea在工具栏中显示快速创建包和类的图标
idea常用快捷键
shift+alt+v /ctrl+alt+v 生成变量
问题
1. Intellij IDEA Cannot resolve symbol XXX
清理一下idea的缓存,File->Invalidate Caches/Restart 清除缓存重启
2.Error running ‘xxx’: Command line is too long. Shorten command line for xxx or also for Spring Boot default configuration?
打开.idea/workspace.xml文件,找到name为“PropertiesComponent”,增加一行:
<property name="dynamic.classpath" value="true" />
Eclipse
添加comment
给新增的Java类,自动生成Comment。
打开Preferences,找到Java–>Code Style -->Code Templates–>Comments–>Types
添加如下内容:
/**
* 名称: ${file_name}<br>
* 描述: name<br>
* 批次:name<br>
* 创建时间: ${date}<br>
* 修改时间:<br>
* 编写人员:xxx<br>
* 版本号:1.0
*/
eclipse启动时卡住org.eclipse.jdt.core
删除
.metadata.pluginsorg.eclipse.debug.core
.metadata.pluginsorg.eclipse.jdt.debug.ui
.metadata.pluginsorg.eclipse.ui.workbench
eclipse安装反编译插件
1、将jd.ide.eclipse.plugin_1.0.0.jar放在eclipse的安装目录下:E:eclipseplugins
重启eclipse.
2、打开eclipse
windows–>Preferences–>General–>Editors–>File Associations
选中*.class
在下边栏位点击add添加 Internal editors,JD class File Viewer,然后设置为默认。
常见问题
java.lang.InternalError: name is too long to represent
在编译非常大的JSP时,会出现java.lang.InternalError: name is too long to represent异常,可采用如下办法来解决:
1.减少JSP大小
2.修改tomcat下的路径为tomcatconfweb.xml文件中的suppressSmap设置为true即可
最后
以上就是乐观黑猫为你收集整理的日常梳理-java日常开发规范及常见问题Java 异常处理的注意事项开发常识idea常见配置及问题Eclipse常见问题的全部内容,希望文章能够帮你解决日常梳理-java日常开发规范及常见问题Java 异常处理的注意事项开发常识idea常见配置及问题Eclipse常见问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复