JAVA——Exception&Error

在万物皆对象的JAVA中,先让我们看看Exception和Error的地位吧:

aaarticlea/gif;base64,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" alt="avatar">

可见Exception和Error都继承自Throwable类,所以二者既有相同也有不同之处。相同之处就是他们都是程序出错导致的,或说程序不正常运行才会实例化的类,不同之处就在于产生他们的的程序的出错原因不同,下面就来详细比较一下。

一,Exception&Error

从命名来看Error貌似比Exception要严重一点,事实确实如此。Error产生的情况一般是指不大可能出现且不可预料的情况,如JVM本身不正常,内存溢出,栈溢出等一些比较严重,会使程序终止的情况。而Exception通常是一些可以预料的不好的情况,如类型转换失败,多线程数据插入失败等,虽然程序出错,但可预料,一般也不会使程序终止。

二,未受检查异常和受检查异常

1,Error和Exception的子类RuntimeException都是未受检查的异常,也可以叫运行时异常,因为它们都是不可预料的,在程序运行时才会出现的异常。

2,Exception的其他子类是受检查的异常,是指程序员可以在代码中预料和捕捉到的程序异常,这也是程序员重点关注的地方。

三,异常处理

要搞清楚异常处理就得先知道try-catch-finally-return这几个关键字的语法和使用,它们在程序中的语法位置如下:

try{
//可能会产生异常的语句
}catch(Exception e){
//产生异常后才会执行的代码
}finally{
//不管有没有产生异常,在执行完上面两个代码块后,此处代码都会执行
}

画个流程图更容易理解,如下:

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAmkAAAEXCAYAAAD2sdP+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAADGUSURBVHhe7Z3vrxzVmef3v5o3mzeRRsqLnWhfDNFcWGVItAlSZjLaKCKGmxcgDYnYCAV8sWMTQZbE/JBhwbO2g0nCxAg7Jji2IYvHcRw7sWPMJRjbsbk2tq9xTT3VdarPOfWc+tFd1V1d9flIX2Gququrq7vrfO5zzqn6LxEAAAAAdA4kDQAAAKCDIGkAAAAAHQRJAwAAAOggSBoAAABAB0HSAAAAADoIkgYAAADQQZA0AAAAgA6CpAEAAAB0ECQNAAAAoIMgaQAAAAAdBEkDAAAA6CBIGgAAAEAHQdIAAAAAOgiSBgAAANBBkDQAAACADoKkAQAAAHQQJA0AAACggyBpAADQOGvXb0V7j16Knn79g+jBF09Hd3z/PwjpReT7LN9r+X5fWltPv/HtgKQBAECjHD27Fn3lid+rDRwhfcrdm48nstYWSBoAADTGjoPn1caMkD7nezv/nP4CmgVJAwCARpAKmtaAETKE/Py3F9NfQnMgaQAAMDUyBo0uTjLk3LlyLPrw8s30F9EMSBoAAEzN7sMfqQ0XIUPKs/v+kv4imgFJAwCAqdn8s3Nqo0XIkPKdl8+kv4hmQNIAAGBq7t12Sm20CBlSZLZnkyBpAAAwNVqDRcgQ0yRIGgAABLl4eTX60c5vRleuXkiX6GiNFSFDTJMgaQAAEOTDi6ejDY//1+jBH34uOnTslXRpHq2xImSIaRIkDQAAgpx670giaSahqprWWBEyxDQJkgYAAEGOn/61I2kSraqmNVaEDDFNgqQBAEAQkTFf0kzsqprWWFXP2ehwspWYk2dz6zccvJGujKLDe9x1VbPlZBStHjypriP1I8czQ/nMKmXb+WhVe75ZLlw8H21Ilp+Mdl2c/POfZZoESQMAgCD73t6uCpqJqappjVX1tCtp9vPHjf4w4rz36HK0RXnMJGlC0oKfS07SRoKW4b/ensvpihA3ol17rG0WMalwWmkSJA0AAIL84q2nVDnz842VO6N/ePRNtdEqT3uS5kqKEDfY27TlBSyw2HVX0lzxcqqcWiXNXibYnwmSBgAAQ0FmdEp1bMfeR6J/ffLvVCnTcu/jfxt9+bEn1YarOO1IWk7ErIZ9ESQtEaEpX7uzkuZI10icx+ut74Pz/q3lMdl3oUFJa6JLvEmQNACAgXPt+sfOjE23evYZ699u7t+UX/eNlSW14dLiNPQ+ceO8paJIaeKW37YrKF2WNGff5iRphZ9NXRSJc7afe48hSTPrQu/DlrgaQmpJHpIGAACd4OipN6Kf/PT+RK5eeO276VL3shv3bbIkbCWO/f9Wvrny36N/fPRZtdEKpS1JywtYcxWkWaT3kuZ1XebFaELZsrdboyIbWj5pmgRJAwAYEOu3bkRvvrsjevjHdziSJRMAZJ15zHOvPpBMGnjs+S85j/OzMV4vsqc1VmVpS9LcbaeNvFRLphSeWaXvkuZu2+/qlNjj1bx9dro23XX2e9UqYuPXdV8TSQMAgLkiXZp7DmxNZEyTrUeeuSu5BZSPLNceb+TMoDVW1WNVTipWQMob1nibmeDYlZlmGmKJK0AGTzr8Ae8ZeWHSt2dRcmzGjPfBXZ++Zm6f8vtii1Sx8MSU7Ze9vuZrF2Mfa1vsNPELS1po+aRpEiQNAKDnSGXsoac+nxMtWSbjzzQ5M/gVN1/ODFpjVT31Jc1uyMuky230YykIilMBhaLhkklNhdex972WpFXch5ykBQfZu7JkH7PmJM27lEbChJ9HgiVV9jbU6mOoOlcud3XTJEgaAMAA2HtomyNaMnvTdG8W8e0ffLZQzgxaY1U9bqVLEDGQhl7+qwlZVUnzxSd57CRSkIlGfl996kiaLRTVJa36PpRu08KWsTYkTd8XEaby95MR6P4tfJ/Jc6pImiuqk6ZJkDQAgJ4hXZtyNwDp3jSIkG1+8Z7c7ZzKKJMzg9ZYVY8maefTZbGoKZUOu1EOSppXNaolTz6paDhyIviCEr+mJjVOnNfPV28c4VCkpM4+5OXFEhG/qmZtZ56SJq9nP7b0eJZJXnIMpxfBqmkSJA0AoEfIvTbtrs0zq0fTNe2iNVZlyclGKWPBsBtxVdIUEStv7N3uuPx2vYZekZN8yuSgrqTV2wdXjPKv5XwG1mu1IWk5KUwIVK/sx9Z6jwp1Ja3S5xpOkyBpAAA9QCplu/atZHJmImPOZoHWWJUl2LhmjaQrTZUlLVApm1rSvO0GK3hpSuUhxd+O8zxf0qbah7wQVZG0qTGfZ7rvqwfPlncx2u8zJ6pucsc5eT1LypA0AACYF+fOn8jNwpRqmlTVZoXWWJVGq6x4DWRedEbVIHt5oeRYzFbSXClwX9tdNxhJi9/3ruQ4VBkHZh+j0GNMPAFTJU17nhX7uCJpAADQBDIhwAzuN5EL1Mq4tFmiNVbVYzWoTgPpV9IMN6LDJ8OSNm5wL8dSMH7cTLs7HQH1JKNEtAolrc4+xOmWpJlUkTT7MfluWj9yTT1XsmpKWo3u1bI0CZIGALCgiIjZ48/kGmh1JwY0hdZYVU9A0uyGUxparfIWI5IjMmLLzpaTo8bflpTpJU2RF79Bj/cxeR1vX8fbyotnoaSVjSMTQvsQ/7sJSdOOm/M8RWqc182tryJpRZ9d/H0pktfk9VxJK7owsv95ae+3TpoESQMAWGDMLZxk5qZ9/81ZozVW1aNJmiszWcOZCojdgBtJS/CEINzQaymXNL8KppG8TtHjLlpVn5hiSbMw763qPuS2tViS5oiuLWX2+8+2jaQBAMCckfFnMkHAZpZjz0JojVX1KJJmN9Bad5fXqGbS4AlB45ImcfYtj3kdR2QsDu+x3m9M/nXc9Rn2e6u4D5NKWlnKJK04FSWtQNQN4880cMwEJA0AANpGqmbmtk6+qM0brbGqHL8y4leKNAmwHmPPFvQb2FqS5r1uUNKSuAKR4YmOK2pGNsskLf+YhNxxKN+HxZY0f/9Hx89+7fGxK5a0svdVT+aL0yRIGgDAAvDOidecCQIia/Ps3vTRGqvSaNWgk5e9xjbUiGuNcr7iVtT4ugLlo1TvSJZZSVpQRBPs59aQtJIqZLGcl6dJkDQAgI5j39JJIvfT/PDi6XRtN9Aaq/LkG9ZEpKyKVlGD6VZZYpSKSZGk5Z5vU6OqNMTMTtLi+JXVFPfztL5Lyf5Y/+9/loHtjaiwPyVpEiQNAKDD7Nj7iCNocpumLlXQDFpjVR6vSmI39tKQVmj8x6KlV76KJC3YWNeWjuFlppKWxPuuTCXRoapbM9XTJkHSAAA6yguvfdcRNLkfZ5Wbos8DrbEiZIhpEiQNAKCDXLy8mk0SkIiwdRmtsSJkiGkSJA0AoKPI5TZE1LouaILWWBEyxDQJkgYA0CHkMhs2UlFbBL725Am1wSJkSLlz5Vj6i2gGJA0AoCPILZ0WoWtT43s7/6w2WoQMKcvP/zH9RTQDkgYA0AGMoJn84q2n0jWLwY6D59VGi5Ah5enXP0h/Ec2ApAEAzBlf0OQyG3Lz9EXivQvXk64ereEiZCh5+0/N/m6RNACAOSL33Vx0QTNQTSNDzuafnUt/Cc2BpAEAzAmZvWnf6mmRBc0gY3K0BoyQPkcmzqxdv5X+CpoDSQMAmAMya/Ohpz6fCZrc6qmLdxKoy83129Gz+/6iNmSE9DFSQWtD0AQkDQBgDpxZPZpdrFb+27V7cU7LifevJY3XvdtOqQ0bIYsc+V7L97vpMWg+SBoAwJz49NNb0dq1S9GtT9fTJQBh5NIsMsmkDxVXqAaSBgAwQ26uX0//BVAdGb9ousal8grDAEkDAJgR129cja6sfRR9cv3j6Pbt2+lSgHLkunlG0n7y0/vTpdB3kDQAgBmwvn49ETSTGzc/SdcAlPPEy1/PJE26PGEYIGkAAC0jY84+vnohE7Rrn1xO1wCUs37rhnOplkW5nytMD5IGAMNidXe0vLQ1cm9jXpfVaPfyUrS0tXwrt29/GgvaxUzQrl7764RdnaPXXN5tN9BHoq1Ly5GzKFnmPw4WGbnpvhE0uVQLDAckDQCGRSJpS1EFvxpzZGu0ZItdxW2IoK1d2xc9Hj92qXICArl6JDoSRwQsk0PZr+Xdsb4JqTim0ra6iqT1hV37VjJJk3/DcGhF0uSibkfPrkUvHPgw+s7LZ6KvPPF79TojhJDFzN2bj0cPvng6+Y0f/MOV6NJaly4hkYrMFHHkKxE0t1q1uns5XlZejbt2/Up05cBj0dKGF6KTVy9En5ZcauPI1vj1PfNLlin7WCXQD+ROFEbSjp56I10KQ6BxSdt79BI32SVkgJGrzHeTI9HuYNdf0bqYtGKmCVAwaWXLdHPu37QUbXj5d8nEgWJGcuk6mrasAsl+L6f/A4uM3CbMCJqMS1v024ZBPRqTNKmefW/nn9WTNyFkGJH7Nr53oVvXARtVovxxW0LaPZh1F3ooFbSEGt2lt28fijYZeasUrzqXdbOarszyyFi0pNIXvy/oBzJR4M13d0R7DmxNl8BQaETSpKtDbi6qnbQJIcOKVNJluEN3kGqUL1vFA/+LujPLujqlgmYYydIuXQI9sq5Of/ybkIhh+DUT0upZUWEQABaLRiSNChohxI780SY32u4mxYKWSFKoulbyXNPFKWPR5N/aGLNi9O7NRPZKtmOqZzgaQH+YWtJ+/tuL6kla8tD/PR09vfdc9PN3PoxOvn+FENKT7P3/H0XPvvF+9MjOM+pvX/LD195PzxIzJqlExXJUOxWqUAVdnaOZnJfGl9r45PJInHKvU5z8tut1dUK/kEkDciFbmdXJeLThMZWkSTenNkngi4//LnrlMGJGyBAiwvZPgeEOJ96/lp4tZkf96pXCJKK3eX8maHLh2rKZnJXJdX+OpM0RMro6e4ncSN2eNADDYypJk6n32omZyhkhw8pv/nApWtqY/4NNLtExWyacDVmJcFfn9RtrmaBJnJuoF3SfTiSUCNlgOLN6NJM0qajB8JhK0p5+/YPcSfnhfzutnsQJIf3Ok//+Xu58IONVZ0rheLIpCXR13lz/xBE0uYn6GKXqlVEilBN125ZMLoCFQmZ0Gkl77tUH0qUwJKaSNLmYpX9S3r5/VT2BE0L6nX3HPsqdD2QCwewoEqLp0Qbm5+7J+dbjijjVyViypMqWfy/h99hINy90CrnkhpG0X7z1VLoUhsRUkiZXHfdPynKi1k7ghJB+5/jZy7nzgWRm5MZuNYkuR3IfTiNo2j05ddEaUSxV2mVDYoJdnW1288K8+MlP788k7Z0Tr6VLYUhMJWnaCVk7eRNChhHtnDAbWpaUgByJlK3FcibVNPv6aEIiYcGu1wpdncpzQ5fZ4PIb/cS+HdS587OsSkNXQNIIIY1FOye0T3hAf2XS8WZ6F2SVbBlX8My2iqSppOpXpavTvbwHY9H6iMzoNJK2futGuhSGBJJGCGks2jmhbURWQl2KbSAzOeUaaH7lzEhUFWGaaPxYsKsT+ojcCsoI2iPP3JUuhaGBpBFCGot2TugTN26OZ3KuXb2YG4MG0BRy4dpT7x1JQlfncEHSCCGNRTsn9IX19RuZoEnk1k8AAG2CpBFCGot2TugDcvcA+1IbMlmAKhoAtA2SRghpLNo5YdExN03PBC3p5vTHowE0y6Fjr0QPPfX55L6dew9tS5fC0EDSCCGNRTsnLDLJTdMtQRNZQ9BgFoikmYkDcnN1GCZIGiGksWjnhEXmhde+mzWUcjkEuZciwCyQOwyY7x53GxguSBohpLFo54RFRmbYSXeTNJRHT72RLgVoHyQNBCSNENJYtHPCIiJyZpCLiB4//ev0/wBmw469j2SSJl2fMEyQNEJIY9HOCYuGdHHK7XiuXL2QLgGYPXZXO5I2XJA0Qkhj0c4Ji4TdMD784zsQNZgbSBoISBohpLFo54RFwR4DJJFGEmBeIGkgIGmEkMainRMWAV/QfvLT+9M1APMBSQMBSSOENBbtnNB1fEH70c5vJpMFAObJhxdPZ/fupNt9uCBphJDGop0TugyCBgBdpteS9qvtz0R/c/dKlvt+qT/u5PtHo/usx/3N8v7oV+rjJsi7+6O77t4dvaStI4GcjTYtW5+HZOWo8rhJY7Yf+lzyr+98d365O172TLTpXWsZSaKdE7qKyJhImRE0uR4aggYAXQJJS9KSpCWCNt7uXdvP6o8jXlqWNO9zkfjfjZdWtPXKfgW+K/53rzixLCr7VCXh7/R8op0TuowRNbnkhn1tNIB5I9fmkz8cuHfnsEHSkrQgaaFGN912vUbcS9n+pa+9uFLYrqTlj32+ohaStF/9Uvtc81U1JG2cLiFSJhcJlfE+BlmGoEHXkMkCpsrLTOPhgqRJ/AZyWklLusOs7SnbbVzSlEYeSdOS37Z2nHRJM/GkPokrarORtO51uWrnhK5g3+KJa6BB10HSQEDSJA1Kmt+4j+NWa5C0orQoaTmB1kXH/3zyx9Lex3lV0vIVwHlHOyd0gYuXV6NHnrkra/QkdCFBl3nnxGtIGvRN0rQKhxZp3Ko+1k1YfAq2p0jVECUtLLANJyh01eWvXNIksr0K1SxfDCcWTn//kbQqnDt/Inroqc87grbv7e3pWoBucmb1aPZ9lQowDBMkrWbCjbX++GmqcrWCpI0TkqCKVTRJNUmrluKuUyv+Z5h7H953dlbfrRrRzgnzRAZff/sHn80aO/m3VCgAuo5Uf833VrrnYZggaTUTbqyV7aWNrDT47QhTgRwqyeRAGTOX7Z+zLj5OymOL5UDZp/Tx85U0Zb+KKlql1S/t+6NJn/+6BZU37zXz3xkkrQ57DmzNGjnJgz/8XFKdAFgU7O8vDBMkrWYKZctqZHXpqdA1VivNSlq+CzZ0nAreR0FFb66SprznoKRpj62YXJXMPx5FYuW9bu67Vlppm3+0c8K8sC9UK5UIqUwALBLyvTXfYb6/w4SJA5KCxq9ut5eIyPh1NMER8XGfM3kalLSV3Tm5MvuqyVXoOORFbyx0ue0EJaNe1at8uwEhl8cpUjlN/O+Yv29F35/S76v/uRUck3lFOyfMEhl/ZpBLa2x+8Z5kPA+X2IBFRL6/RtLk9lAwPJA0SYOSNo4uUMk+TFGpGUfkpzlJ05MKpSYyqiAo+2NVjuYlabn1zuMmq6iG4n4//G0XV1Ld75ry2LJKWweinRNmgVxOw9w9wO7S5DIbsMjIHx32Hx4wPJA0SUGFYlJJ08Qge25jkma9piJSwX0Nvr67zV9t359W/TQZVCqCyj7Yx3wuklZ0rKeVtIJ9SlLxczafk/s+8pI2+R8Ms4t2TmgbmRwg481MxUG6iLi9EwD0gWFJWiwdiUQk1Z1R46xVtuzGb5KG0X9OkqriUDlNS5pSubGivSdfevOPcUVu9pJWImDJ4zQBjbO8O7rPWV58fPIJbFeJLmk10qEJBNo5oS1kjM5Pfnp/JmcmMmEASQOAPjAoSbMbtU0FDeI0khZ6TUdouihppQ29IjyOOJWL1ewlrUSUCrYp8bcbrMRqqfEZjz6n6lKXy8AkTcaX7dq34lxaQyIXq2X2JvQJGYdmxqXJHyQwPHopaUE5qxi7Ma4jaUWvW6uBj+MLQpkcTitppduPk6/02JWyvMT573n2kuauy02OKJG0uoI+Tj3hGm13CkkreR+zjHZOaBpzayc7ckV2JgdA35DxaOY7Ln+EwPDomaRVHF8UN2phoXIrVFUb6iJBk/RB0vLPs46Vv06p7uQlr6VY0pJ9LrI//jEqkxv/PVWWodD3UJ+IgaQVIzdDP3rqjfT/RtUF03CJsFE9g74i3fbmuy6hG3949EzSyhs6R0YUsUliCUY1SSuXw15ImnJ8zfOq7O88JG30XlOZrCtpuWOqTJYIRJf2IknLbyOYieWx/WjnhEmQWZlvvrsj6+qR2zrZDZR0d9riBtBX7HvOMtNzeAxK0jRRClfA0gbVaxBDDaq7nWeiu7z96IekKccrEVpfUvVB9nORtPi4bDLHvq6kVXxfejRxR9KKkIqYiJnWnSnhdk4wROzJMfwGhkfvxqQlIpA2Wr5Q5EWpvPJ230o1SRs3yqOG3BeSeUhasPGeQtLy8hGLh7+9wED2uUiandqSFq4cVslLK76shyWt2rGp94fDPKKdE3xExqTL0r6CurnGWSjPvfoAVQQYJPbtzeTfMCx6OXHApFTSFFkpTdKwx433ijbmKm1Ek3+7z5uLpIUqP1NJmrJvy2UyrD8vLEmKPBcIVeXt1pY0pXKoPEceo79n/30MR9K+uvFhR7K02A2OfQsnE6moSWWNC9LCkDl07JXsN8EMz+ExYEkLiYBVKZL/94VGe4z1miZ+o9u6pKnda26yfZhS0orldiyqfhZR0vLymxff8ev7770dSfO/14sqaTIj0yDjy+QitNIIIWYAY6TybH4zzPAcHoOVtFyFxFkvjatetUgadqeRrTb+qn1JU2TFS2OSpkmUSRXxKU09SaucSSStdF8CIhZ6rpIhSZrcGUAqZKZKBgDFyKVlzO9n4/NfSpfCUBimpGmVoMA4qlzDLo9znm83yuNMJ2n5xr1aQ1xcTWtO0nTJldSVUT1dkjTtvVpirn0/sudWlzT79coS/F53INo5AQCmg/GYw6XXkqaKkt+oJgmM3UpS0o1YcZB8rYZ0SonSqzLWe2xA0tTjGBLd2umWpOnfgSpVrTYkLb9NJA0AoJ/0TtKKuo2ye3f6KWmsi7YZamCrSFqoGqWlSw1xkiZEL5iuSVoc5f3m48v+FJKm/jGhB0kDGAYyI1ou7gzDoX+VtGBjGjegvzzq3TQ7TpXqT9E2AxW4SpW0yg2x3qU6z+TFtagaWTcdlLQ4RbKeJPdd8t9H+jl6+6HLbflEkFG69d3QzgkAMB0iZjKek3Fpw6N/khYSH6sBHTe21cVCbaALBK+SpFVsiJurUDUU7Rg3IVFZuilpkiJRy3/G00jaFFW4OUY7JwDAdNiTByTcp3Y49HBMWr5xyzdk8pj6lR+ne7KkAldN0oob/a5USV7abr9XXSyb7XLrrqQlyUlqk1XEcYq/G00f82ainRMAYHqkgmYkTS4GDcOg1xMHSDMpk4Vmq2hkkaOdEwBgenbsfSSTNLn4MwwDJI2UZhGqfaQb0c4JADA93HlgmCBppDRhSUPQiBvtnAAA0yOTB4ykySQCGAZIGimNJmmdm8xAOhHtnAAAzWBmeEq4FMcwQNIIIY1FOycAQDP8aOc3M0mT7k/oP0gaIaSxaOcEAGgGmTAgN1l/4bXvMsNzICBphJDGop0TAABgMpA0Qkhj0c4JAAAwGUgaIaSxaOcEAGgOuX/n0VNvRHsObI3OnT+RLoW+gqQRQhqLdk4AgOaQ8Whm8sC+t7enS6GvIGmEkMainRMAoDlEzIykcVHb/oOkEUIai3ZOAIDmkC5OI2kP//iOdCn0FSSNENJYtHMCADTLt3/w2UzUZIwa9BckjRDSWLRzAgA0yxMvfz2TNJlEAP2lcUn7zR8uqSdvQkj/o50TAKBZdu1bySRN/g39ZSpJu3fbqdwJeefBv6gnb0JIv3Pg+IXc+eDuzcfTswUANIVUz4ykSVUN+stUkvbD197PnZQ37+HG24QMMdv3r+bOBw++yE2gAZrmytULmaTJ+LT1WzfSNdA3ppK0vUcv5U7KSxuP0eVJyMBy/Ozl6J+ePJE7Hzz9+gfp2QIAmkSulyb38pR7eCJp/WUqSXvvwvXcSVmy4dlT0btn/qqezAkh/YoI2sP/dlo9F+w//tf0bAEAAHWZStKEzT87p56cv7zlePTSr1epqhHS07x96lIyBlWroEmWn/9jepYAAIBJmFrSbq7fjr4WOEkTQoaZO1eOJZV2AGgH6eLce2hbcteBH+38ZroU+sbUkiYcPbumnqgJ6UvuevTfo//x6C51Hclnx8Hz6dkBANpAJM2+qO216x+na6BPNCJpgkwikOn22gmbkEXOFx59J/rGylJyIrxn40PJ/2uPI6MKGoIGMBs2Pv+lTNK4qG0/aUzShEtr69F3Xj6jnrwJWdR8dePD2YlQ8o2Vv6eqpkTGoNHFCTA77IvaykxP6B+NSppBZnTJ1Hu5RpL8Za2d0AlZlPzDo29G/7JyjyNqEqpqIzGT6yX+/LcX018/AMyKd068lp2PuKhtP2lF0gD6yKFjr0QP/vBzjqg98sxd0ZnVo+kjAABmh9xc3ZyL5NwE/QNJA6iBXOlbZlLZoiY5d/5E+ggAgNnx0FOf5zzUY5A0gAmwq2rPvfpAuhQAYLbIJTiMpL357o50KfQFJA1gQqSqJrdmkf8a9r29PbcMAKAt5FppRtL2HNiaLoW+gKQBNISImamuyX9F2AAA2uTDi6eTy2/wh2E/QdIAGkKkzPxFayLXMZIbIAMAANQFSQNokOOnf53M+PRlTcat8ZcuALQN55l+gaQBNIy5p559yxaJdIHKdY0AAJpEqvjmj0OGWfQLJA2gJeQvWqmgGUkTaZPrGgEANIk91GLH3kfSpdAHkDSAlpExafJXrlTXDCJrskwu5QEAMA0yzMJI2uYX70mXQh9A0gBmhHSDGuxrG8nkAm6ODACTIlV7cz7hzgP9AkkDmDFyQjWX6rAjfwEzExQAJsE+pzB5oD8gaQBz4Nr1j6Nd+1Zykwskctsp7gcKAHWQG6ybc4h0f0I/QNIA5oj8xSsDfW1Jk8j9+OzuUQCAIuSPPnP+YIZnf0DSADqATCSQ20lpJ1n5q5gJBgBQhNy305w/mOHZH5A0gA4hsiYnWG2SwcM/viORNypsAOAj41mNpMkffNAPkDSADnPu/InsxGsiXaFyI2WuuQYA0G+QNIAOIxMMfvHWU4mY+bImkUkG3MUAAKCfIGkAC4B0ccq4NOny9EVNZnUBABikys6wiH6ApAEsGDKRwL4Yrl1Jk8HDVNcAhom5f6dEhkrA4oOkASwo8teydIXafzHL3QvMSVoubikDiLlALsAwkD/QzO+fu5j0AyQNoCeItJkTtB8Z0yazRhE2gP5iX3NRquqw+CBpAD1CRE1mfmpj1yRyhwPGqgD0k72HtmW/dTkPwOKDpAH0FBmTIlcht4XtuVcfSNeO1ou0yfg2+aubS3oALDYyFtX81rlWWj9A0gAGgHRz+t2dMp7NnNBNZEyb/AXOvUMBFg/7grbM+u4HSBrAQLEHGWuRiQfdniV6JNq6tBztnqYAuLo7Wl7aGm9pGlaj3ctL0dLWWY73G73msvPmteMhy/zHQV+RP67M73fzi/ekS2GRQdIABox0eco4FntWqB17hph0nUrXqNyaqhPT+49sjZaWd8e6MgWJpC1FtfxKXtcWu1rbGEnTUuUEBHL1SHQkTrIt88LO8UjFMZW21VUkbQjYk4dkmAMsPkgaACRcuXohuWCujFuTKpqc6OWOBwZ/MoI8RrpUpNtUZG7WY9qObK1SIaorRfk48pUImlutWt29HC+rWI2rIZby/vzqXLJM2ccqgf6DpPUPJA0AVGzpsk/+RRHRM8hFd6cd2zYSIF06ChMsax2JdgfFrmhdTFoxU18vFE/IqomlMJJL921oyyqQ7Pdy+j8AsEggaQBQCenilK5OqbRp9xKVZQapwNnr5Eropuom1ToZ4DzVpUAm7OocVaK0cWxp92Bom0oFLWGWXZ3JPsgy05VZHhHCRHTj9wUAiweSBgATIdU16eYU8RIBs6f827PMQpFxcIbbt29Hn8Rid/3G1ejGzWvRrU/Xk9y+/Wn6CJfqFSkfESVftooH/hd1Z9bp6jSyVGWvs67OTMwsEjEsec20ejbRIQKAzoCkAUDjSNVNZo+GJiRIZL1BhOzK2kfBfHz1Qixwa+mjj0Rblu6P/t/Z65nMFQldMcWClkhSUKxKnuuRiVdl9O7NRPZKtlNHCKFf2L8xWHyQNABonQ8vnk7GqEnVTSpufuVtff26JWW/i17aEAuN13VXPd+KXvrjR9HVTy6nlSjtMWVZjnadG8nfp5/eSvfSo1ZXZypOudcpTn7b9bo6YXiYST8Se+IPLCZIGgDMHenuXF+/kXR3Sq7FgiWStXb1YiZvUkkbjSkb5fED40qbFuk+NdWrm44E6pHHGxxpPPCYIz+Vsnl/sv92pBvXsH7rZrLMdPH6kWNhy6EcHxHGkXTaXZ0jaXOEjK7OQWPPwp71jGtoHiQNADrP7dvvJzKydfdIQHbt2hKL0AFHgtauXfKk61dZd6FbqdMTlDQ1v4t23BfLWFrqqrz9tPv0rPL4/Zvi7W16Pfv/Kvtz9U8vRvctbYh2nHYl0EjdqBIYyx0MBiStXyBpANBxxoP9x2OttAkAHtZ4sqRSd+umWrX65PpasNKVyJ9VzcvyxxdiORp3R1aTtJNZ1Sv/+Nejx+Pt2dVBR9J+szlfrSvNY9F+6zVMwy1XopfuZrlfK/QPu7vTviQOLCZIGgB0ltE4LtO953Xt5br+bJRuwAYpGpgvExiSKtahLZYwTZJN2Xv7zZal6L4df0gmUBjpMmP3Nrz8u+T/RTgNb/0gfr5VlZOYhttE7uVqMDfmliqMCJzcXULGDzZxrTuYLfZnDIsPkgYAHWQ0s7FsrFUy5kyTpUKBm5bJBFD2NfSc4pmfgaphcjzuzyY4jGe3yuzXpWjTW1ecaqDdeEvkmncGuTWYv96PiJtBKjTIWzexPzNYfJA0AOgQZvZiXrD06pX2eP3SFY0xwcD8oEwmlOyv1W1rE6rmFVX5BBmnJNexs7vC9hzY6jTuWmypkyqbWS7dp1KVk+5TxG2+yGdqPhfp9oTFB0kDgG5QKD/F1atEghJRS6VtGkNL9kO2N2ksYTTbKpCmRMIKqn56Bc49HqNuYeX1a2IEToRMREyuZScSJo2+dH0a5Eb7Rgb8fPsHn02eJ9uB2SKSZj4v7t3ZD5A0AOg+FatXIit1uyHbIVwR9Cnu6gwwQTWvSaRyJrf68gXNjtyNwiBVNolcLw8AqoOkAQDARMj9V6ViJlU3qa7Z93S1L6RqXxZC/i3j2+SuFABQDJIGAACNIdUymS1qkC5UI2h+ROqkKkfXaDOIGCO//QJJAwCA1hBxkNmjMk7NvoaXHVkuVTmYDpFdc0zlUiqw+CBpAAAwM2QCglTP7K5R+z6uUomTdTLjlDFs9TDXu5M89+oD6VJYZJA0AACYC9I1JzJmzxz1Lwey8fkvJZMOuFl4OfalUeTfsPggaQAA0BlEymxJsyPVIa7FFkaOjzlWh469ki6FRQZJAwCATiGX77CFw499eQ8YY66RJmEyRj9A0gAAoJNIF6d0ddryIePV7EkGcuFdbiQ+gpur9w8kDQAAOo9MIpAJBjJT1CBdn0ZKZN2QLz8hQmuOhdz1AfoBkgYAAAuJdnsqWTZEWbOFVe4GAf0ASQMAgIVELjlhd4XaGZqsyRg0uTaadAfLe4d+gKQBAMBCI1UkraommWQ2qNwloavIeLwu7x80C5IGAAC9QCpntqzJ5TxsqlxrTSRIugu7fKkPmSAg702uhTbkcXhDAEkDAIBeYWTNvlSHdAfKgHqZeFB0Cyq5+bsIXpe7DP2qody0/omX/zna/8729BHQF5A0AADoPfZFckVq7LscGGSZLT9drVLZdxbwc9+mzyQzXWW8HvdDXXyQNAAA6DUyhkubYCA3fTf3B5Xriv3rk//NWS/3GO0i9o3UyyJVN7n7ANdNW0yQNAAAGARyYVz7xu4mcr/Q/7Pr3txy6R7totxIhczf1/u8//cj1UPuf7p4IGkAADAYRFTMuDOTb1n/HuUz2b/lsV3E7r791oq97/nIRAhmhC4mSBoAAAwO6eaU64rlpGaT+//+bai6gi+aoYjMUUFbXJA0AAAYJCJfDz/996rc2JH7g3YNmRjg76ff5Slj7hC0xQZJAwCAQVJYjbK6ELtYTZPuS2d/rS5aiQgaszsXHyQNAAAGR50ZkhL7mmtdQSYDaPsql+CAfoCkAQDAoJAZm9osz6L87x9/IX12d/Avaivp6kQHmAwkDQAAcqxdvxXtPXopevr1D6IHXzwd3fH9/+hNvr7yzzm5qZJ/fPRZdXvzyv98bKOzf1/d+LD6ODJd5PsvvwP5PVxaW09/IbMBSQMAAIejZ9eirzzxe7XB6lO++OiOJF967OlEcCQicP+y8uXof6180REgiazTtjOv3PXoq9m+ffmxJ9XHkGZz9+bjiazNCiQNAAAydhw8rzZOQ87S99/IhE5bP6984dF3onsf/1sEbQ753s4/p7+YdkHSAAAgQSpoWoNECMnn57+9mP5y2gNJAwCAZAzaELo4CWkqd64ciz68fDP9BbUDkgYAANHuwx+pDREhJJxn9/0l/QW1A5IGAADR5p+dUxshQkg433n5TPoLagckDQAAonu3nVIbIUJIODLbs02QNAAAUBsgQkh52gRJAwAAtfEhhJSnTZA0AABQGx9CSHnaBEkDAAC18SGElKdNkDQAAFAbH0JIedoESQMAALXxqZ6z0eF0O9HJs7n1Gw7eSFdG0eE97rqq2XIyilYPnlTXkfYjxz9D+YwrZdv5aFV7vlkuXDwfbUiWn4x2XZz8+zLLtAmSBgAAauNTPe1Kmv38cSPeRKz9TrgR7doWL7elYVIhaSDO+44uR1sqrmsjTUha8HPMSdpI0DL819tzOV0RIv4c91jbLKKBz7dNkDQAAFAbn+ppT9JcGRFGIpVfXoAmdmpDP9q2IyQx86rmFIlY0bo2Mr2kueLlVEW1Spq9TLA/QyQNAACGhNb4VE87kpYTMauhnk7S/AqaAUkLZWpJc6RrdJzH663Pw/ms3M8p+xwalLQmutDbBEkDAAC18SmLLzMOcWO7paJIaRKU33aRpJTgS5rXyOdef4DdnYWfZV2UY+Zsv0ia1XWh92dLXI1jYH3+SBoAAHQerfEpS1uSlhew6SXEzqyrUJOmN5LmdV3mxWhC2SqRafsY2d+x0PJJ0yZIGgAAqI1PWdqSNHfbaaMt1Y9clWWyIGn5tClp7rb9rk6JPV7Ney9O1TN8DLSK2Ph13ddE0gAAYKHQGp/qsSohFSsa5Q1lvM1MyuxKy+QNqys2Cum+u4+rIEf+IPeQNOUeZ9AfX3s//FmRge060pQeY3tZsfDElHzGzvoKx8aVuCJs2bLfqyZ+YUkLLZ80bYKkAQCA2vhUT31JsxvmMulyG/G4kQ/KTgHxfrliozCJpAUHsXsCUGGf/eNQaz/MurLxdgHhtY9xc5LmS6Mw4eeXYB1TextqhTVUnSuXu7ppEyQNAADUxqd63IZfkIZeGm75ryZkVSXNlZH0sZ2RtGIc2amyz55sVN8Pe533WfhCFeg+bEPS9GMlr5n/vgQJdHEXfg7Jc6pImntMJ02bIGkAAKA2PtWjSdr5dFksakrlwm5kg5LmVYUyeZhQ0sx2w4JTvj4nB7ZE+FW1gGA4cd6LW9mpvh/uOkeoitZZx2SekiavZz9We303JZKXHPfpRbBq2gRJAwAAtfEpiysDVRgLg90oq5KmiFh54+12r4Xkr0hwyta76/LdZc4xyTX+ZeLQjKSFxc9+ffe12pC0nLQm5I937rHK9u24712hrqSVvF5Z2gRJAwAAtfEpS7CxzBo9V5rsBtp+bk6mApWy7klayXMtSXOfF8be58n3wz0O2XGzRcgTyPrCXYD5/NPPcfXg2fIuRvszL6ls5Y5l8nqWlCFpAADQJ7TGpzRapcRr8PJyMqrg2Mt9mco/Z8TiSporDO77cNc1I2lxFCErqpa1Imnxe9uVvI79uSj7mj52fBxCjzHxBEyVNO15VmwpRNIAAKDLaI1P9VgNpNPg+ZU0w43o8MmxZORkKmtAL8eN/PhxCytpjsx6z/Gqho1JmiMyIsbFEtSOpJlUkTT7MW5XrBa5Bp8rWTUlrUb3alnaBEkDAAC18amegKT51Ryt8hYjYiLSYQvKlpOjxtyWkX5Imr1feYltTtJc8TocH88MRUqKqmz+eu35zv7k1leRNHcbuWpjTrz875wraUUXUk62bX0m5d+r4rQJkgYAAGrjUz2apLkCkjWEceMo/7YbZCNpCV4DH264tXRU0rxqmcNFqyIU06SkhV5XOy5dkLSc1JvlatckkgYAAANBa3yqR5E0p3qkdF95jWQmAV4Dbzf+CytpcRzJsTi8xzp2MY1Kmnc8Emz5qZEySStORUnz9jf7vFWhco+bA5IGAAB9Qmt8KsevdPgVHK1Rtx5jz/7zG0xbRkobU+91uyRpElfUjLi2KWlxHFmeXEhmI2n++xodI/u1x8enWNLKRNR+HSQNAAA6jdb4lMYTgISTl73GM9Qoa41svuJW1JiGqlMjygefDyLOZzT5MZmVpKnVvwz7uTUkTfueWoRkvmraBEkDAAC18SlPvqFMRMqqaBU1gG7VJEapgBRJWu75NhWqKf2PJzxTHJPZSVocvxKb4n7+1ncv2R/r//33GdjeiAr7U5I2QdIAAEBtfMrjSYDdeEvDWKExH4uWXuUpkrRg41tbIvoZX2KnqRjNVNKSNCeY4apbM9XWNkHSAABAbXzIAibUtUdlsbW0CZIGAABq40MWMKqkTd+lR8JpEyQNAADUxocsYHxJo4LWetoESQMAgOhrT55QGyBCSDh3rhxLf0HtgKQBAED0vZ1/VhshQkg4y8//Mf0FtQOSBgAA0Y6D59VGiBASztOvf5D+gtoBSQMAgOi9C9eTrhutISKE6Hn7Tx+nv6B2QNIAACCBahoh1bP5Z+fSX057IGkAAJAhY2y0BokQMo5MtFm7fiv91bQHkgYAABk3129Hz+77i9owEUJGFbRZCJqApAEAQI4T719LGqN7t51SGypChhT5Hcjvoe0xaD5IGgAAAEAHQdIAAAAAOgiSBgAAANBBkDQAAACADoKkAQAAAHQQJA0AAACggyBpAAAAAB0ESQMAAADoIEgaAAAAQAdB0gAAAAA6CJIGAAAA0EGQNAAAAIAOgqQBAAAAdBAkDQAAAKCDIGkAAAAAHQRJAwAAAOggSBoAAABA54ii/wTYY6l7FSXAnwAAAABJRU5ErkJggg==" alt="avatar">

注意:还有一个return的用法很多人会出错,当try-catch-finally中出现return语句时,要注意代码执行顺序,在代码中讲解,如下:

public int f1() {
int res=0;
try {
res=1;
}catch(Exception e){
}finally {
res=5;
}
return res;
}
/*上面这段代码的执行结果按照前面的流程图推一下很容易知道f1()方法的返回值是5
但如果是下面这种代码形式呢
*/
public int f2() {
int res=0;
try {
res=1;
return res;
}catch(Exception e){
}finally {
res=5;
}
return res;
}
/*f2()的返回值应该是1,因为在try中执行到return语句时程序会先将要return的值入临时栈,此时finally中执行的操作改变res的值,但却不会影响到存在临时栈中return的值。
再看下面这种情况
*/
public int f3() {
int res=0;
try {
res=1;
return res;
}catch(Exception e){
}finally {
res=5;
return res;
}
}
/*此时f3()返回值应该是5,因为程序会把finally中的return值替换掉try中的return值
*/

四,throw & throws

throw : 将产生的异常抛出(强调的是动作),抛出的既可以是异常的引用,也可以是异常对象。(位置: 方法体内

throws : 如果一个方法可能会出现异常,但没有能力处理这种异常,可以在方法声明处用throws子句来声明抛出异常。用它修饰的方法向调用者表明该方法可能会抛出异常(可以是一种类型,也可以是多种类型,用逗号隔开)(位置: 写在方法名 或方法名列表之后 ,在方法体之前。)

五,自定义异常

可以继承Exception或Throwable类来定义自己的异常类型

public class MyException extends Exception{
public MyException() { }
public MyException(String msg) {
super(msg);
}
}

异常抛出方法和自带异常一样,如下

public int exceptionTest(int a) throws MyException {
if(a<10) {
System.out.println("程序正常");
return a;
}
else {
throw new MyException("程序异常");
}
}

以及捕获异常如下

public static void main(String[] args) {
Main m=new Main();
try {
int res=m.exceptionTest(11);
} catch (MyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

JAVA-Exception&Error的更多相关文章

  1. JAVA基础 Exception, Error

    转载请附上本文地址: http://www.cnblogs.com/nextbin/p/6219677.html 本文参考: JAVA源码 http://swiftlet.net/archives/9 ...

  2. java 区分error和exception

    1) java.lang.Error: Throwable的子类,用于标记严重错误.合理的应用程序不应该去try/catch这种错误.绝大多数的错误都是非正常的,就根本不该出现的.java.lang. ...

  3. java中Error与Exception有什么区别

    Error类和Exception类都继承自Throwable类. Error的继承关系: java.lang.Object  java.lang.Throwable      java.lang.Er ...

  4. Java Exception 和Error

    (事先声明:该文章并非完全是我自己的产出,更多的是我个人在看到资料后通过理解并记录下来,作为自己阅读后的一个笔记:我现在试图对自己多年工作中的知识点做一个回顾,希望能融会贯通) (此文参考<Ja ...

  5. Exception in thread "main" java.lang.Error: Unresolved compilation problem

    初学java,使用eclipse编译时,可能会遇到如下图所示的编译错误(Exception in thread "main" java.lang.Error: Unresolved ...

  6. Atitit.  Exception in thread "main" java.lang.Error: Unresolved compilation problem:

    Atitit.  Exception in thread "main" java.lang.Error: Unresolved compilation problem: 1.1. ...

  7. java中error和exception的区别

    转自:https://www.jianshu.com/p/e8bbee3c1c4a Error类和Exception类的父类都是throwable类,他们的区别是: Error类一般是指与虚拟机相关的 ...

  8. Java异常处理总结Exception\Error

    Java异常处理总结Exception\Error 2012-12-28 08:17:17|  分类: JAVA |  标签:java  |举报|字号 订阅   Java异常处理总结          ...

  9. OFBIZ bug_ControlServlet.java:233:ERROR

    错误日志: [java] 2014-09-26 10:12:17,031 (http-bio-0.0.0.0-8443-exec-5) [ ControlServlet.java:233:ERROR] ...

  10. OFBIZ bug_ControlServlet.java:239:ERROR

    错误日志: [java] 2014-09-23 00:11:34,877 (http-bio-0.0.0.0-8080-exec-4) [ ControlServlet.java:141:INFO ] ...

随机推荐

  1. 【洛谷P1119】灾后重建

    题目大意:给定一个 N 个顶点,M 条边的无向图,每个顶点有一个时间戳,且时间戳大小按照顶点下标大小依次递增,在给定时间 t 时,时间戳严格大于 t 的顶点不能被访问,现在有 Q 次询问,每次询问在给 ...

  2. LeetCode 7最长公共前缀

    编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow" ...

  3. laravel 命令行测试 Uncaught ReflectionException: Class config does not exist

    require __DIR__ . '/vendor/autoload.php'; $app = require_once __DIR__ . '/bootstrap/app.php'; config ...

  4. arcgis计算邻接矩阵

    求邻接矩阵 教程链接   http://m.blog.csdn.net/wan_yanyan528/article/details/49175673 (1) 将目标shp文件导出一份副本备用(以省级为 ...

  5. Spark记录-官网学习配置篇(二)

    ### Spark SQL Running the SET -v command will show the entire list of the SQL configuration. #scala/ ...

  6. SPOJ 8222 NSUBSTR - Substrings

    http://www.spoj.com/problems/NSUBSTR/ 题意: F(x)定义为字符串S中所有长度为x的子串重复出现的最大次数 输出F[1]~F[len(S)] 用字符串S构建后缀自 ...

  7. bzoj千题计划234:bzoj3802: Vocabulary

    http://www.lydsy.com/JudgeOnline/problem.php?id=3802 dp[i][0/1/2/3]  表示前i个字母,第1.2个字符串,第2.3个字符串的关系分别为 ...

  8. Nginx配置项优化(转载)

    (1)nginx运行工作进程个数,一般设置cpu的核心或者核心数x2 如果不了解cpu的核数,可以top命令之后按1看出来,也可以查看/proc/cpuinfo文件 grep ^processor / ...

  9. Brief History of Machine Learning

    Brief History of Machine Learning My subjective ML timeline Since the initial standpoint of science, ...

  10. CS229 笔记06

    CS229 笔记06 朴素贝叶斯 事件模型 事件模型与普通的朴素贝叶斯算法不同的是,在事件模型中,假设文本词典一共有 \(k\) 个词,训练集一共有 \(m\) 封邮件,第 \(i\) 封邮件的词的个 ...