Une ligne de log a provoqué un accident en ligne de P1
Jul 25, 2023 pm 05:52 PM
日志(log)
Révision des accidents en ligne
Il y a quelque temps, un collègue a ajouté une fonction très simple avant de se connecter la nuitreviewLors de la révision du code, il a pensé aux valeurs de travail acharné et d'entreprise de l'entreprise et a temporairement ajouté une ligne de journaux. Il a estimé qu'une simple ligne de journaux était la base. Il n'y a eu aucun problème, mais il y a eu beaucoup d'alarmes juste après la connexion. J'ai rapidement annulé le code, trouvé le problème, supprimé le code pour l'ajouter. journaux et je me suis remis en ligne. review代码时想到公司拼搏进取的价值观临时他加一行 log 日志,觉得就一行简单的日志基本上没啥问题,结果刚上完线后一堆报警,赶紧回滚了代码,找到问题删除了添加日志的代码,重新上线完毕。
情景还原
❝
定义了一个 CountryDTO
❞
public class CountryDTO {
private String country;
public void setCountry(String country) {
this.country = country;
}
public String getCountry() {
return this.country;
}
public Boolean isChinaName() {
return this.country.equals("中国");
}
}
Copier après la connexion
❝
定义测试类 FastJonTest
❞
public class FastJonTest {
@Test
public void testSerialize() {
CountryDTO countryDTO = new CountryDTO();
String str = JSON.toJSONString(countryDTO);
System.out.println(str);
}
}
Définir la classe de test ❞🎜<span style="float: right;taille de police : 3em;hauteur de ligne : 1em;">🎜</ blockquote><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>/**
* case1: @JSONField(serialize = false)
* case2: getXxx()返回值为void
* case3: isXxx()返回值不等于布尔类型
* case4: @JSONType(ignores = &quot;xxx&quot;)
*/
@JSONType(ignores = &quot;otherName&quot;)
public class CountryDTO {
private String country;
public void setCountry(String country) {
this.country = country;
}
public String getCountry() {
return this.country;
}
public static void queryCountryList() {
System.out.println(&quot;queryCountryList()执行!!&quot;);
}
public Boolean isChinaName() {
System.out.println(&quot;isChinaName()执行!!&quot;);
return true;
}
public String getEnglishName() {
System.out.println(&quot;getEnglishName()执行!!&quot;);
return &quot;lucy&quot;;
}
public String getOtherName() {
System.out.println(&quot;getOtherName()执行!!&quot;);
return &quot;lucy&quot;;
}
/**
* case1: @JSONField(serialize = false)
*/
@JSONField(serialize = false)
public String getEnglishName2() {
System.out.println(&quot;getEnglishName2()执行!!&quot;);
return &quot;lucy&quot;;
}
/**
* case2: getXxx()返回值为void
*/
public void getEnglishName3() {
System.out.println(&quot;getEnglishName3()执行!!&quot;);
}
/**
* case3: isXxx()返回值不等于布尔类型
*/
public String isChinaName2() {
System.out.println(&quot;isChinaName2()执行!!&quot;);
return &quot;isChinaName2&quot;;
}
}</pre><div class="contentsignin">Copier après la connexion</div></div><div class="contentsignin">Copier après la connexion</div></div> 🎜Temps d'exécution<code style="font-size: 14px;overflow-wrap: break-word;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px;color: rgb(30 , 107, 184);couleur d'arrière-plan : rgba(27, 31, 35, 0.05);famille de polices : 'Operator Mono', Consolas, Monaco, Menlo, monospace;saut de mot : break-all ;" >Pointeur nul Erreur : 🎜🎜🎜Pointeur nul🎜
Il ressort du message d'erreur que isChinaName(), à ce moment this.country est vide, alors le problème vient : isChinaName()方法,这时候this.country变量为空,那么问题来了:
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Comment puis-je utiliser JPA (Java Persistance API) pour la cartographie relationnelle des objets avec des fonctionnalités avancées comme la mise en cache et le chargement paresseux?