我是靠谱客的博主 乐观黑猫,最近开发中收集的这篇文章主要介绍日常梳理-java日常开发规范及常见问题Java 异常处理的注意事项开发常识idea常见配置及问题Eclipse常见问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 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执行顺序

  1. 当try和catch中有return时,finally仍然会执行。
  2. 不管有没有异常,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常见问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部