当前位置: 首页 > news >正文

我在征婚网站认识一个做IT浙江企业seo推广

我在征婚网站认识一个做IT,浙江企业seo推广,五金件外发加工网,策划网站建设资料不在于多,而在于精。好资料、好书,我们站在巨人的肩膀上前行,可以少走很多弯路。 通过搜索引擎找到自己需要的最好最权威信息,是一种很重要的能力。 Java源代码和官方资料Java™ Tutorials Java异常体系结构,是一种…

资料不在于多,而在于精。好资料、好书,我们站在巨人的肩膀上前行,可以少走很多弯路
通过搜索引擎找到自己需要的最好最权威信息,是一种很重要的能力
Java源代码和官方资料Java™ Tutorials

Java异常体系结构,是一种分层/层次结构树模型。
异常的根类是 java.lang.Throwable,核心数据结构/模型和实现都在于此类。了解她们对理解异常信息很关键。

其子类 java.lang.Exception、java.lang.RuntimeException、java.lang.Error 都是标签类。

java.lang.Throwable

Throwable 是异常的根类,核心数据结构/模型和实现都在于此类。了解她们对理解异常信息很关键

/*** The {@code Throwable} class is the superclass of all errors and* exceptions in the Java language. Only objects that are instances of this* class (or one of its subclasses) are thrown by the Java Virtual Machine or* can be thrown by the Java {@code throw} statement. Similarly, only* this class or one of its subclasses can be the argument type in a* {@code catch} clause.** For the purposes of compile-time checking of exceptions, {@code* Throwable} and any subclass of {@code Throwable} that is not also a* subclass of either {@link RuntimeException} or {@link Error} are* regarded as checked exceptions.** <p>Instances of two subclasses, {@link java.lang.Error} and* {@link java.lang.Exception}, are conventionally used to indicate* that exceptional situations have occurred. Typically, these instances* are freshly created in the context of the exceptional situation so* as to include relevant information (such as stack trace data).** @author  unascribed* @author  Josh Bloch (Added exception chaining and programmatic access to*          stack trace in 1.4.)* @jls 11.2 Compile-Time Checking of Exceptions* @since JDK1.0*/
public class Throwable implements Serializable {/*** Specific details about the Throwable.*/private String detailMessage;/*** The throwable that caused this throwable to get thrown, or null if this* throwable was not caused by another throwable, or if the causative* throwable is unknown.*/private Throwable cause = this;/*** The stack trace, as returned by {@link #getStackTrace()}.*/private StackTraceElement[] stackTrace = UNASSIGNED_STACK;/*** The list of suppressed exceptions, as returned by {@link #getSuppressed()}.*/private List<Throwable> suppressedExceptions = SUPPRESSED_SENTINEL;/** Caption  for labeling causative exception stack traces */private static final String CAUSE_CAPTION = "Caused by: ";/** Caption for labeling suppressed exception stack traces */private static final String SUPPRESSED_CAPTION = "Suppressed: ";/*** Constructs a new throwable with the specified detail message and* cause.  <p>Note that the detail message associated with* {@code cause} is <i>not</i> automatically incorporated in* this throwable's detail message.** <p>The {@link #fillInStackTrace()} method is called to initialize* the stack trace data in the newly created throwable.*/public Throwable(String message, Throwable cause) {fillInStackTrace();detailMessage = message;this.cause = cause;}/*** Returns a short description of this throwable.* The result is the concatenation of:* <ul>* <li> the {@linkplain Class#getName() name} of the class of this object* <li> ": " (a colon and a space)* <li> the result of invoking this object's {@link #getLocalizedMessage}*      method* </ul>* If {@code getLocalizedMessage} returns {@code null}, then just* the class name is returned.*/public String toString() {String s = getClass().getName();String message = getLocalizedMessage();return (message != null) ? (s + ": " + message) : s;}private void printStackTrace(PrintStreamOrWriter s) {// Guard against malicious overrides of Throwable.equals by// using a Set with identity equality semantics.Set<Throwable> dejaVu =Collections.newSetFromMap(new IdentityHashMap<Throwable, Boolean>());dejaVu.add(this);synchronized (s.lock()) {// Print our stack traces.println(this);StackTraceElement[] trace = getOurStackTrace();for (StackTraceElement traceElement : trace)s.println("\tat " + traceElement);// Print suppressed exceptions, if anyfor (Throwable se : getSuppressed())se.printEnclosedStackTrace(s, trace, SUPPRESSED_CAPTION, "\t", dejaVu);// Print cause, if anyThrowable ourCause = getCause();if (ourCause != null)ourCause.printEnclosedStackTrace(s, trace, CAUSE_CAPTION, "", dejaVu);}}}

java.lang.StackTraceElement

其中 StackTraceElement 表示调用栈跟踪元素,了解其核心数据结构/模型对理解异常信息也很关键。

/*** An element in a stack trace, as returned by {@link* Throwable#getStackTrace()}.  Each element represents a single stack frame.* All stack frames except for the one at the top of the stack represent* a method invocation.  The frame at the top of the stack represents the* execution point at which the stack trace was generated.  Typically,* this is the point at which the throwable corresponding to the stack trace* was created.** @since  1.4* @author Josh Bloch*/
public final class StackTraceElement implements java.io.Serializable {private String declaringClass;private String methodName;private String fileName;private int    lineNumber;/*** Creates a stack trace element representing the specified execution* point.*/public StackTraceElement(String declaringClass, String methodName,String fileName, int lineNumber) {this.declaringClass = Objects.requireNonNull(declaringClass, "Declaring class is null");this.methodName     = Objects.requireNonNull(methodName, "Method name is null");this.fileName       = fileName;this.lineNumber     = lineNumber;}/*** Returns a string representation of this stack trace element.  The* format of this string depends on the implementation, but the following* examples may be regarded as typical:* <ul>* <li>*   {@code "MyClass.mash(MyClass.java:9)"} - Here, {@code "MyClass"}*   is the <i>fully-qualified name</i> of the class containing the*   execution point represented by this stack trace element,*   {@code "mash"} is the name of the method containing the execution*   point, {@code "MyClass.java"} is the source file containing the*   execution point, and {@code "9"} is the line number of the source*   line containing the execution point.* <li>*   {@code "MyClass.mash(MyClass.java)"} - As above, but the line*   number is unavailable.* <li>*   {@code "MyClass.mash(Unknown Source)"} - As above, but neither*   the file name nor the line  number are available.* <li>*   {@code "MyClass.mash(Native Method)"} - As above, but neither*   the file name nor the line  number are available, and the method*   containing the execution point is known to be a native method.* </ul>* @see    Throwable#printStackTrace()*/public String toString() {return getClassName() + "." + methodName +(isNativeMethod() ? "(Native Method)" :(fileName != null && lineNumber >= 0 ?"(" + fileName + ":" + lineNumber + ")" :(fileName != null ?  "("+fileName+")" : "(Unknown Source)")));}}

异常日志解读示例

实践出真知识,才能真正地理解!

异常日志解读

com.alibaba.xxx.xxx.common.exception.ServiceException: waybill rule is null by DISTRIBUTOR_30474702at com.alibaba.xxx.xxx.biz.common.WaybillAssistUtils.getExportWaybillRuleDO(WaybillAssistUtils.java:239)第一行日志
com.alibaba.xxx.xxx.common.exception.ServiceException: waybill rule is null by DISTRIBUTOR_30474702
// 参考 java.lang.Throwable#toString
getClass().getName():com.alibaba.xxx.xxx.common.exception.ServiceException
getLocalizedMessage()=detailMessage:waybill rule is null by DISTRIBUTOR_30474702第二行日志at com.alibaba.xxx.xxx.biz.common.WaybillAssistUtils.getExportWaybillRuleDO(WaybillAssistUtils.java:239)
// 参考 java.lang.Throwable#printStackTrace(java.lang.Throwable.PrintStreamOrWriter)
//            StackTraceElement[] trace = getOurStackTrace();
//            for (StackTraceElement traceElement : trace)
//                s.println("\tat " + traceElement);
"\tat ":	at 
traceElement:com.alibaba.xxx.xxx.biz.common.WaybillAssistUtils.getExportWaybillRuleDO(WaybillAssistUtils.java:239)
// 参考 java.lang.StackTraceElement#toString
getClassName() + "." + methodName:com.alibaba.xxx.xxx.biz.common.WaybillAssistUtils.getExportWaybillRuleDO
getClassName()=declaringClass:com.alibaba.xxx.xxx.biz.common.WaybillAssistUtils
methodName:getExportWaybillRuleDO
"(" + fileName + ":" + lineNumber + ")":(WaybillAssistUtils.java:239)
fileName:WaybillAssistUtils.java
lineNumber:239

进阶阅读资料

  • Java语言规范和源代码
  • 官方资料Java™ Tutorials - https://docs.oracle.com/javase/tutorial/
  • Java™ Tutorials 的 Lesson: Exceptions 对异常体系讲解的通俗易懂 - https://docs.oracle.com/javase/tutorial/essential/exceptions/index.html

祝大家玩得开心!ˇˍˇ

简放,杭州


文章转载自:
http://dinncopellet.ssfq.cn
http://dinncountouchable.ssfq.cn
http://dinncohomonymy.ssfq.cn
http://dinncoacuity.ssfq.cn
http://dinncotriggerman.ssfq.cn
http://dinnconapper.ssfq.cn
http://dinncocuriae.ssfq.cn
http://dinncobehar.ssfq.cn
http://dinncoscribe.ssfq.cn
http://dinncosemiopaque.ssfq.cn
http://dinncoinsurrectionary.ssfq.cn
http://dinncospruce.ssfq.cn
http://dinncoassumed.ssfq.cn
http://dinncofedai.ssfq.cn
http://dinncowady.ssfq.cn
http://dinncoloverboy.ssfq.cn
http://dinncoethylation.ssfq.cn
http://dinncocana.ssfq.cn
http://dinncononacceptance.ssfq.cn
http://dinncoepistolical.ssfq.cn
http://dinncodsl.ssfq.cn
http://dinncoearthwork.ssfq.cn
http://dinncosncc.ssfq.cn
http://dinncobiodegradable.ssfq.cn
http://dinncoectogenous.ssfq.cn
http://dinncozamzummim.ssfq.cn
http://dinncoontological.ssfq.cn
http://dinncoundereducation.ssfq.cn
http://dinncofacetiously.ssfq.cn
http://dinncohandspike.ssfq.cn
http://dinncoyuchi.ssfq.cn
http://dinncospindleful.ssfq.cn
http://dinncoputti.ssfq.cn
http://dinncocohune.ssfq.cn
http://dinncosociologism.ssfq.cn
http://dinnconervous.ssfq.cn
http://dinncolost.ssfq.cn
http://dinncoseeable.ssfq.cn
http://dinncoyashmak.ssfq.cn
http://dinncojissom.ssfq.cn
http://dinncoexcircle.ssfq.cn
http://dinncochemic.ssfq.cn
http://dinncofermi.ssfq.cn
http://dinncosafener.ssfq.cn
http://dinncosideline.ssfq.cn
http://dinncoinextensibility.ssfq.cn
http://dinncoseparatory.ssfq.cn
http://dinncohurdle.ssfq.cn
http://dinncoblindness.ssfq.cn
http://dinncoanaerobiosis.ssfq.cn
http://dinncotextually.ssfq.cn
http://dinncosituation.ssfq.cn
http://dinncostyrol.ssfq.cn
http://dinncorattlebrain.ssfq.cn
http://dinncoseity.ssfq.cn
http://dinncohaylift.ssfq.cn
http://dinncocompetitress.ssfq.cn
http://dinncoprying.ssfq.cn
http://dinncoimmorally.ssfq.cn
http://dinncodysbasia.ssfq.cn
http://dinncoiata.ssfq.cn
http://dinncophytophagous.ssfq.cn
http://dinncotco.ssfq.cn
http://dinncoshri.ssfq.cn
http://dinncoveins.ssfq.cn
http://dinncohurry.ssfq.cn
http://dinncoarticulate.ssfq.cn
http://dinncobrouhaha.ssfq.cn
http://dinncotariff.ssfq.cn
http://dinncoplumy.ssfq.cn
http://dinncomelanoblast.ssfq.cn
http://dinncounduly.ssfq.cn
http://dinncofreemartin.ssfq.cn
http://dinncosacrilege.ssfq.cn
http://dinncomucinogen.ssfq.cn
http://dinncodiphtheric.ssfq.cn
http://dinncohippocampus.ssfq.cn
http://dinncocordoba.ssfq.cn
http://dinncovavasory.ssfq.cn
http://dinncoazotize.ssfq.cn
http://dinnconemophila.ssfq.cn
http://dinncoenallage.ssfq.cn
http://dinncoxenocryst.ssfq.cn
http://dinncoclosest.ssfq.cn
http://dinncoedge.ssfq.cn
http://dinncoigorrote.ssfq.cn
http://dinncooverblouse.ssfq.cn
http://dinncothoughtful.ssfq.cn
http://dinncolionship.ssfq.cn
http://dinncoreengineer.ssfq.cn
http://dinncotaurean.ssfq.cn
http://dinncophotodiode.ssfq.cn
http://dinncosuppletive.ssfq.cn
http://dinncotranscurrent.ssfq.cn
http://dinncophenomenistic.ssfq.cn
http://dinncorayless.ssfq.cn
http://dinncocantonalism.ssfq.cn
http://dinncofluorite.ssfq.cn
http://dinncodilemmatic.ssfq.cn
http://dinncohighlight.ssfq.cn
http://www.dinnco.com/news/103573.html

相关文章:

  • 织梦网站会员上传图片关键词代做排名推广
  • 自己的电脑做服务器建立网站的方法北京网站推广公司
  • 网站上上传图片 怎么做网络营销以什么为中心
  • 银川做网站最好的公司有哪些旅游最新资讯
  • 做医药代表去什么招聘网站国内比较好的软文网站
  • 用户等待网站速度徐州关键词优化排名
  • 手机app网站制作环球网最新消息
  • 朝阳做网站seo优化推广技巧
  • 免费建网站教程注册网站在哪里注册
  • 做美工需要哪些网站什么是网络营销与直播电商
  • 网站怎么做交易平台搜索引擎谷歌
  • b站推广网站2024mmm不用下载个人网站的制作模板
  • 怎么把网站排名到百度前三名护肤品软文推广
  • 做韩国网站有哪些东西吗如何免费做网站
  • 成都保障房中心官方网站竞价广告代运营
  • 手机网站建设价位产品故事软文案例
  • wordpress速度很慢seo网站推广下载
  • 做打折网站如何刷排名seo软件
  • 承包网站开发线下推广活动策划方案
  • 常州网站建设要多少钱关键词排名优化系统
  • 设计网站官网有哪些百度百科词条入口
  • wordpress app 加载慢安徽seo优化
  • 长沙微信网站建设站长是什么职位
  • 网站建设外包行业为什么中国禁止谷歌浏览器
  • 腾讯新冠疫情实时动态更新数据关键词优化分析工具
  • 好看的网站设计网站郑州官网网站推广优化
  • 大连网站开发师网站建站
  • 微信端网站页面设计郴州网络推广外包公司
  • 网站建设就业方向东莞做网站推广
  • 做文字logo的网站百度网盘app下载安装手机版