知識ずスキル

旧レベル09 - 1倧孊では、理論ず実践の間に倧きな違いはない、ず教えられたした。たあ、それが同じではないこずは確かに理解しおいたす。しかし、栞心的な違いはわかりたせん。それでも、1぀ありたす。 ほずんどの人は、「知っおいたす」ず「できる」の間に等号を眮きたす。あなたは いく぀か䟋を挙げおみたしょう。
  1. 喫煙が䜓に悪いのはわかっおいたすが、喫煙しおしたいたす。
  2. ファストフヌドは䜓に悪いずわかっおいたすが、食べおしたいたす。
  3. 亀通芏制は知っおいたすが、運転はできたせん。
  4. ゞョギングが䜓に良いこずは知っおいたすが、朝はゞョギングしたせん。
人々が「知っおいる」を「できる」ず受け取っおしたうこずがよくありたす。亀通芏制の良い䟋です。芏制を知っおいお、運転方法を知っおいる人は、運転できるずいうこずでしょうか? いいえ。もし圌が自分は運転の仕方を知っおいるず思っおいるずしたらどうしたすかでは、なぜ圌にむンストラクタヌが必芁なのでしょうか。圌はすでにすべおを知っおいたす。 すでにすべおを知っおいるず確信しおいる堎合、おそらく新しいこずは䜕も孊ばないでしょう。そしお、すべおのやり方を知っおいるず確信しおいるなら、勉匷する必芁はありたせん。このような考えは頭をよぎるこずさえありたせん。それは、䜕かを孊ぶための玠晎らしい機䌚をすべお逃すこずを意味したす。通垞の倧孊は知識だけを䞎えおくれたす。自分でスキルを習埗する必芁がありたす。でも、䜕が聞こえたすか倧孊では理論以倖に実践も行ったこずがありたすかOK、物理孊郚で勉匷した堎合、少なくずも 20% の効率を持぀蒞気゚ンゞンの実甚的なモデルを䜜成したす。やり方は知っおいるず思いたすが、実際にできるわけではありたせんよねあなたは化孊者ですか無煙粉末を䜜りたす。方法は知っおいたすが、それはできたせんね? 数孊者ですね砲匟の匟道を蚈算したす。シェルの圢状を考慮するこずを忘れないでください。珟実䞖界では数孊の点は飛びたせん。そしお球状の銬は存圚したせん。 旧レベル09 - 2生物孊者ペニシリンを分離したす。このカビはメロンに生えるんですね。ご存知の通り、玠晎らしいですねそれできたすか ゚コノミスト原油䟡栌の䞊昇を予枬したす。終わりそしお、あなたの予枬に基づいお、それを幎間 2,000 ドルたたは 200,000 ドルに倉換したす。FOREXでプレむしたこずがありたすかリアルマネヌのためそれずもそれが䜕なのか知っおいるだけですか 囜際経枈玠晎らしいどこでオフショア䌚瀟を蚭立すればよいですか? 銙枯、アむルランド、たたは米囜。なぜたずえそれが疑わしいずわかっおいおも、実際にやったこずがないので、なかなかできないでしょう。あなたにはそれをどうやっお行うか党く分かりたせん。ああ、倧孊でそれを勉匷しなかったのですか準備ができおいない仕事をあなたに䞎える暩利が私にあるでしょうか? だっお、これらは珟実の仕事だから。これは実践です。あなたが倧孊で勉匷しおきたのは、球䜓の銬、完党な競争だけです。珟実にはどれも存圚したせん。しかし、なぜ私は蚀及するのを忘れたのでしょうかマヌケティングのスペシャリストできるだけ倚くの人に私の講矩を知っおもらうために、私の 500 ドルをどのように䜿うのが最善ですか? 広告で叀兞的な広告がすでに時代遅れであるだけでなく、USP (ナニヌクな販売提案) の抂念も時代遅れであるこずに気づいおいたすか。これはほがナニヌクな䞇胜薬ずしお倧孊で教えられたず思いたす。 䜕も知っおいるこずを忘れおください。自分に問いかけおください – 私に䜕ができるでしょうか? 圹に立぀ずいうこずですか人々がお金を払っお買うものは䜕ですかお金がいいずいうこずですか それでは、皆さん、CodeGym のような玠晎らしいコヌスに感謝の意を衚したしょう。そのおかげで、プログラミングの方法を知るだけでなく、実際にそれを実行できるようになりたす。数幎埌には仕事に就いお十分な収入を埗られるようになるでしょう。このお金で快適に暮らすのに十分だずいいのですが。もう䞀床蚀いたすが、芚えおおいおください。䜕を知っおいるかは問題ではありたせん。重芁なのは、あなたがどのような有甚なスキルを持っおいるか、぀たり人々があなたにお金を払いたがるであろうスキルだけです。これを理解するのは早ければ早いほど良いです。

新しいレベルに到達したした

レベル9

旧レベル09 - 3

1 リヌシャ、スタックトレヌス

旧レベル09 - 4- おい今日はスタックトレヌスずは䜕かに぀いお説明したす。たず、スタックずは䜕かに぀いお説明したしょう。- 曞類の山を想像しおください - 特定の事務員ぞの割り圓お。新しい割り圓おをスタックの䞀番䞊に眮くこずができ、圌はスタックの䞀番䞊から割り圓おを取埗したす。したがっお、割り圓おは先着順ではなく行われたす。事務員が最埌に来る課題を匕き受けるたびに。このようなコレクションの構造をスタックず呌びたす。 - Java には、特別なコレクションであるスタックがありたす。このコレクションには、«芁玠の远加» ず «芁玠の取埗 (取埗/削陀)» メ゜ッドがありたす。すでにご存知のずおり、最埌に远加された芁玠が最初に取埗されたす。 - うヌん。難しいこずではないず思いたす。 - 倧䞈倫。それでは、スタックトレヌスずは䜕かを説明したしょうは。- Java で、関数 А が関数 Bを呌び出し、埌者が関数 Cを呌び出し、関数 C が関数 Dを呌び出すず想像しおください。したがっお、関数 Bを終了するには、たず関数 Cを終了する必芁があり、そのためには関数 Dを終了する必芁がありたす。これはスタックに非垞によく䌌おいたす。 -そしお、類䌌点は䜕ですか - スタック内で、特定の割り圓おに到達するには、䞀番䞊にあるすべおの割り圓おも完了する必芁がありたす。 - そうですね、ちょっず䟋え話ですが、すべおを正しく理解できおいるかどうかはわかりたせん。 - ここを芋お。Java では、スタックは芁玠のセットです。それは玙が束になっおいるようなものです。䞊から3枚目を取るには2枚目を取らなければなりたせんが、その前に1枚目を取らなければなりたせん。シヌトはい぀でも出し入れできたすが、䞊からしかかけず、䞊からだけ取るこずもできたす。関数呌び出しにも同じこずが圓おはたりたす。関数 Aは関数 Bを呌び出し、埌者は関数 Cを呌び出したす。Аを終了するには、たずBを終了し、そのためにはCを終了する必芁がありたす。 - ちょっず埅っお。私が正しく理解できた堎合、スタック党䜓は「スタックに眮かれた最埌のシヌトのみが取埗可胜」であり、「最初に、最埌に呌び出された関数が終了する必芁がある」こずがわかりたす。そうですか - はい。したがっお、関数呌び出しのシヌケンスは「関数呌び出しスタック」、たたは単に「呌び出しスタック」ず呌ばれたす。最埌に呌び出された関数が最初に終了される必芁がありたす。䟋を芋おみたしょう: 旧レベル09 - 5- OK。関数呌び出しを芋ればすべおが明らかだず思いたす。しかし、このStackTraceElementずは䜕でしょうか? - Java 仮想マシンはすべおの関数呌び出しをログに蚘録したす。この目的のために、特別なコレクションであるスタックがありたす。ある関数が別の関数を呌び出すず、JVM は新しい芁玠StackTraceElementをこのスタックに配眮したす。関数が終了するず、芁玠はスタックから削陀されたす。したがっお、このスタックには、«関数呌び出しスタック» の珟圚の状態に関する最新の情報が垞に保存されたす。 - すべおのStackTraceElement呌び出されたメ゜ッドに関する情報が含たれたす。したがっお、 getMethodNameを䜿甚しおこのメ​​゜ッドの名前を取埗できたす。- 䞊の䟋はそれを瀺しおいたす。
  1. «コヌルスタック» を取埗したす。
  2. for-eachルヌプを䜿甚しお配列を繰り返したす。忘れおいないこずを願っおいたす。
  3. メ゜ッド名をSystem.outに出力したす。
- 興味深いこずですが、どうやら簡単です。ありがずう、リヌシャ

2 Diego、スタックトレヌス衚瀺䞊のタスク

- やあ、アミヌゎ! ここでは、スタック トレヌスを画面に衚瀺する小さなタスクを瀺したす。
タスク
1
各メ゜ッドは、盞互に呌び出すStackTrace Write 5 ぀のメ゜ッドを返す必芁がありたす。各メ゜ッドはその StackTrace を返す必芁がありたす。
2 StackTrace を再床
呌び出したす。盞互に呌び出す 5 ぀のメ゜ッドを䜜成したす。各メ゜ッドは呌び出し元メ゜ッドの名前を返す必芁がありたす。StackTrace を䜿甚しお呌び出し元のメ゜ッドを取埗できたす。
3 メ゜ッドは、このメ゜ッドが呌び出されたコヌドの行番号を返す必芁がありたす。
盞互に呌び出すメ゜ッドを 5 ぀䜜成したす。各メ゜ッドは、このメ゜ッドの呌び出し元のコヌドの行番号を返す必芁がありたす。関数element.getLineNumber()を䜿甚したす。
4 10 回の呌び出しのスタック トレヌス
10 回の呌び出しのスタック トレヌスを取埗するコヌドを䜜成したす。
5 メ゜ッドは結果、぀たりスタック トレヌスの深さを返す必芁がありたす。
スタック トレヌスの深さを衚瀺しお返すメ゜ッドを䜜成したす。スタック トレヌスの深さは、そのメ゜ッドの数 (リスト内の芁玠の数) です。

3 Elly、゚ラヌず䟋倖

- やあ、アミヌゎ! 今日はずおも興味深いレッスンがありたす。䟋倖に぀いおお話したす。䟋倖は、プログラム内の゚ラヌを制埡するための特別なメカニズムです。プログラムで発生する可胜性のある゚ラヌの䟋をいく぀か瀺したす。
  1. プログラムは、フルディスクにファむルを曞き蟌もうずしたす。
  2. プログラムは、null 参照を栌玍する倉数のメ゜ッドを呌び出そうずしたす。
  3. プログラムは数倀を 0 で陀算しようずしたす。
これらの操䜜を行うず゚ラヌが発生したす。通垞、これはプログラムの終了に぀ながりたす。コヌドを実行し続ける意味がありたせん。 - 䜕故ですか - 車が厖から萜ちそうなずきにハンドルを切る意味はありたすか - 番組を終了するずいうこずですか - はい。以前はそうでした。゚ラヌが発生するずプログラムが終了したす。 - ずおも賢明な決断ですね。 ―取り組んでみたほうがいいんじゃないですか - うん。MS Word に巚倧なテキストを入力しお保存したしたが、ただ保存されおいたせんが、プログラムはすべおが正垞であるこずを瀺したす。そしお入力を続けたす。ばかばかしいですね。 - うん。 - そこでプログラマヌは興味深い手を思い぀きたした。各関数はその䜜業のステヌタスを返したした。0 は関数が想定どおりに動䜜したこずを意味し、その他の倀ぱラヌが発生したこずを意味したす。この倀ぱラヌ コヌドです。- しかし、このアプロヌチには欠点がありたした。各 (!) 関数呌び出しの埌に、関数によっお返されるコヌド (数倀) をチェックする必芁がありたした。たず、䞍䟿でした。゚ラヌ凊理コヌドはめったに実行されたせんが、垞にコヌドを蚘述する必芁がありたした。第二に、関数自䜓が異なる倀を返すこずがよくありたす。それらをどうすればよいでしょうか? - うん。それが私が尋ねようずしおいたこずです。 - そしお明るい未来がやっお来たした - 䟋倖ず゚ラヌ凊理が登堎したした。仕組みは次のずおりです。
  1. ゚ラヌが発生するず、Java 仮想マシンぱラヌに関するすべおの情報を含む特別なオブゞェクト (䟋倖) を䜜成したす。゚ラヌが異なれば、䟋倖も異なりたす。
  2. この䟋倖により、プログラムは珟圚の関数を盎ちに䞭断し、メむン メ゜ッドを終了するたで次の関数を匷制的に䞭断したす。その埌、プログラムは終了したす。Java 開発者は、このプロセスを「コヌルスタックのロヌルバック」ず呌びたす。
- しかし、あなたはプログラムが確実に終了するわけではないず蚀いたした。 - そうです。䟋倖をキャッチする方法があるからです。い぀でもどこでも必芁なずきに、特別なコヌドを蚘述しおこれらの䟋倖をキャッチし、重芁なこずを行うこずができたす。- これを行うには、特別な構造のtry-catchがありたす。それがどのように機胜するかを芋おください: 旧レベル09 - 6- なぜ«method1の呌び出し埌。決しお衚瀺されたせん» が画面に衚瀺されたせんか? - 質問しおよかったです。25 行目にはれロによる陀算がありたす。これにより゚ラヌ、぀たり䟋倖が発生したす。Java 仮想マシンは、゚ラヌ情報を含むオブゞェクトArithmeticExceptionを䜜成したした。このオブゞェクトは䟋倖です。- メ゜ッドmethod1()内で䟋倖が発生したした。これにより、この方法は即時に䞭止されたした。たた、 try-catchブロックがない堎合は、メ゜ッドmainが終了するこずになりたす。- try ブロック内で䟋倖が発生した堎合は、catchブロックでキャッチされたす。ブロックtry内の残りのコヌドは実行されず、ブロックcatchの実行がすぐに開始されたす。 - よくわかりたせん。 - ぀たり、このコヌドは次のように動䜜したす。
  1. tryブロック内で䟋倖が発生した堎合、このブロック内のコヌドは実行されなくなりたすが、ブロックcatchの実行が開始されたす。
  2. 䟋倖が発生しなかった堎合、try ブロックは最埌たで実行され、catchは実行されたせん。
- えヌっ - 各メ゜ッド呌び出しの埌に、呌び出されたメ゜ッドが自動的に終了したか、それずも䟋倖によっお終了したかを確認するず想像しおください。䟋倖があった堎合、JVM はブロック キャッチが利甚可胜な堎合はその実行を開始し、䟋倖をキャッチしたす。catch ブロックがない堎合、JVM は珟圚のメ゜ッドを終了したす。次に、珟圚のメ゜ッドを呌び出したメ゜ッドで同じチェックが開始されたす。 - 今は理解できたず思いたす。 - それはいいです。 - catch ブロック内の䟋倖ずは䜕ですか? -すべおの䟋倖は、クラス Exception から継承されたクラスです。catchでそのクラスを指定するこずで、それらのいずれかをキャッチできたす。ブロックするか、共通の芪クラスの䟋倖を指定しおすべおを䞀床に実行したす。次に、倉数 e (この倉数には䟋倖オブゞェクトの参照が栌玍されたす) から、゚ラヌに関する必芁な情報をすべお取埗できたす。 - 玠晎らしいたた、自分のメ゜ッドでさたざたな䟋倖が発生した堎合は、別の方法で凊理できるでしょうか? - 必ず。これは次のように行うこずができたす。 旧レベル 09 - 7- try ブロックには耇数のcatchブロックを含めるこずができ、それぞれがそのタむプの䟋倖をキャッチしたす。 - うヌん。たあ、なんずなく分かりたした。もちろん、私自身がこのようなこずを曞く぀もりはありたせん。でも、そんなコヌドに出䌚っおも怖くない。

4 Elly、RuntimeException がスロヌされる

旧レベル098- 今日は別の話題を取り䞊げるこずにしたした。Java では、すべおの䟋倖は、制埡/チェック枈みず非制埡/非チェックの2 ぀のタむプに分類されたす。チェックされた䟋倖はキャッチする必芁があり、チェックされおいない䟋倖もキャッチできたすが、それは必須ではありたせん。 - コヌド内で意図的に䟋倖をスロヌするこずは可胜ですか? - コヌド内で、自分で䟋倖をスロヌできたす。独自の䟋倖を䜜成するこずもできたす。しかし、この穎の奥深くには埌で行きたす。次に、Java 仮想マシンによっおスロヌされた䟋倖を凊理する方法を孊びたしょう。 - OK。 - 䟋倖ClassNotFoundExceptionおよびFileNotFoundExceptionの堎合メ゜ッド内でスロヌされる (出珟する) 堎合、プログラマはメ゜ッドのシグネチャ (メ゜ッド ヘッダヌ) でそれらを指定する必芁がありたす。このような䟋倖はチェックされたす。通垞は次のようになりたす。 旧レベル09 - 9- したがっお、スロヌを蚘述し、カンマで区切っお䟋倖をリストするだけです。右そうですか - はい。しかし、もう䞀぀興味深いこずがありたす。以䞋の䟋をコンパむルするには、 method1()を呌び出すメ゜ッドがこれらの䟋倖をキャッチするか、䟋倖を転送する必芁がありたす。チェック枈み䟋倖を前方にスロヌしたい堎合は、メ゜ッドのヘッダヌでそれを指定する必芁がありたす。- もう䞀床蚀いたすが、メむンメ゜ッドで、ヘッダヌフレヌズに FileNotFoundExceptionをスロヌする メ゜ッドを呌び出したい堎合、 次に、次の 2 ぀のこずのいずれかを行う必芁がありたす。
  1. 䟋倖をキャッチするには FileNotFoundException,  危険なメ゜ッドを呌び出すコヌドをtry-catchブロック
    でラップする必芁がありたす
  2. 䟋倖 FileNotFoundException をキャッチしないようにするには、 
これらの䟋倖をmainメ゜ッドのthrowsリストに远加する必芁がありたす。 - 䟋を挙げおもらえたすか - ここを芋おください: - この䟋はコンパむルされたせん。これは、メ゜ッドmainがメ゜ッド method1() を呌び出し、キャッチする必芁がある䟋倖をスロヌするためです。- サンプルをコンパむルするには、メ゜ッドmainに䟋倖凊理を远加する必芁がありたす。これは 2 ぀の方法で行うこずができたす: - そしおここではtry-catchを䜿甚しおそれをキャッチしたす: - より明確になっおきたしたが、非垞にわずかです。 - 以䞋の䟋を芋おください: - ただ䟋倖がありたす – RuntimeExceptionずそこから継承されたクラス。旧レベル0910旧レベル0911旧レベル0912旧レベル0913捕たえたり投げたりする必芁はありたせん。これらはチェックされおいない䟋倖です。これらの䟋倖は予枬が難しいず考えられおいるため、その発生を予枬するこずはほずんど䞍可胜です。これらを䜿甚しお同じこずを行うこずができたすが、 throwsで指定する必芁はありたせん。

5 Risha、コヌルスタックのロヌリング、䟋倖でのロヌリング方法

- 䟋倖がどのように機胜するかに぀いおもう少し詳しく説明したいず思いたす。以䞋の䟋は、次のこずを説明しおいたす。 旧レベル0914- 理解できたせん。 - Ok。䜕が起こっおいるのか説明したす。- 巊偎の䟋では、耇数のメ゜ッドを連鎖的に呌び出しおいたす。Method2()では、(゚ラヌを開始するために) 䟋倖を具䜓的に䜜成しおスロヌしたす。- 右の䟋は、䜕が起こるかを瀺しおいたす。Method2()を芋おください。これが䟋倖の䜜成の倉換です。RuntimeExceptionタむプのオブゞェクトを䜜成し、それを特別な倉数䟋倖に栌玍し、すぐにメ゜ッドを終了したす ( return )。- method1では、 method2の呌び出し埌にチェックが行われたす。䟋倖があるかどうか。䟋倖が発生した堎合、method1 は盎ちに終了したす。このチェックは、各 (!) Java メ゜ッドを呌び出した埌に暗黙的に行われたす。 - おお - その通り。- メ゜ッドmainの右偎の列に、try-catchブロックで䟋倖がキャッチされたずきに䜕が起こるかを曞きたした。䟋倖がなかった堎合、コヌドは蚈画どおりに実行を続けたす。catchで指定されたタむプの䟋倖があった堎合は、それを凊理したす。 - そしお、throwずinstanceof は䜕を意味したすか? - 巊偎の最埌の行を芋おください。新しい RuntimeException がスロヌされたす。。このようにしお、䟋倖を䜜成しおスロヌしたす。これはほんの䞀䟋です。今のずころはやりたせん。- 右偎のブロックでコマンド「аinstanceof B」を䜿甚しお、オブゞェクトa がタむプBを持぀かどうかを確認したす。぀たり、倉数Exceptionに栌玍されおいるオブゞェクトの型が RuntimeException であるかどうかです。論理的な衚珟ですね。 - そうですね、少しず぀明確になっおきたした。

6 Diego、䟋倖キャッチタスク

- ここを芋おディ゚ゎおじさんは、あなたのために捕獲に関する仕事をほずんど持っおきたせんでした。あなたの幞運を祈りたす。必芁になるず思いたす。ぞヌ。 旧レベル0915- やあ、アミヌゎ! ここでは、興味深い䟋倖キャッチ タスクをいく぀か玹介したす。
タスクをキャッチする
1 1. 数倀を操䜜する堎合の䟋倖
コヌドの実行時に発生する䟋倖をキャッチしたす。
int a = 42 / 0;
タむプを指定しお䟋倖を画面に衚瀺したす
2 2. 文字列操䜜時の
䟋倖 コヌドの実行時に発生する䟋倖をキャッチしたす
。
文字列 m = s.toLowerCase();
タむプを指定しお䟋倖を画面に衚瀺したす。
3 3. 配列操䜜時の䟋倖
コヌドの実行時に発生する䟋倖をキャッチしたす。
int[] m = new int[2];
m[8] = 5;
タむプを指定しお䟋倖を画面に衚瀺したす。
4 4. List コレクションを操䜜する堎合の
䟋倖 コヌドの実行時に発生する䟋倖をキャッチしたす。
ArrayList<String> list = new ArrayList<String>();
文字列 s = list.get(18);
タむプを指定しお䟋倖を画面に衚瀺したす。
5 5. Map コレクションを操䜜する堎合の䟋倖
コヌドの実行時に発生する䟋倖をキャッチしたす。
HashMap<String, String> map = new HashMap<String, String>(null);
マップ.put(null, null);
マップ.削陀(null);
タむプを指定しお䟋倖を画面に衚瀺したす。
- ヒント: たずプログラムを䜜成し、次にどのような䟋倖が発生するかを確認し、その埌コヌドを倉曎しおその䟋倖をキャッチしたす。

7 Risha、耇数のキャッチの仕組み

旧レベル0916- さお、さらに興味深い講矩がありたす。私は教えるのがずおも奜きです。- 耇数のキャッチがどのように機胜するかを説明したいず思いたす。実際には非垞に単玔です。ブロックtryで䟋倖が発生するず、プログラムの実行は最初のcatchに転送されたす。-ブロック キャッチのかっこ内に指定された型が䟋倖オブゞェクトの型ず同じである堎合、コヌドの実行は {} 内で開始されたす。それ以倖の堎合は、次のcatchに進みたす。そこでチェックが繰り返されたす。- catchブロックがなくなっおも、䟋倖がキャッチされおいない堎合、䟋倖は前方にスロヌされ、珟圚のメ゜ッドは䞭断されたす。 - そうか。そのキャッチは、䟋倖のタむプず䞀臎するタむプで実行されたす。 - はい、そうです。実際にはもう少し耇雑です。重芁なのは、クラスが盞互に継承できるずいうこずです。クラス«Cow»がクラス«Animal»から継承されおいる堎合、タむプ«Cow»のオブゞェクトはタむプ«Cow»の倉数だけでなく、タむプ«Animal»の倉数にも栌玍できたす。 。 - だから䜕 - すべおの䟋倖はクラスExceptionたたはRuntimeException (これもExceptionから継承) から継承されるため、それらはすべおコマンドcatch (Exception e)たたはcatch (RuntimeException e)を䜿甚しおキャッチできたす。 - だから䜕 - この意味は、たず、コマンド catch(Exception e) を䜿甚しお䟋倖をキャッチできたす。次に、 catchブロックの順序が重芁です。 䟋: - 0 による陀算の結果生じる ArithmeticException は、2 番目のキャッチでキャッチされたす。旧レベル0917- 以䞋の䟋では、すべおの䟋倖のクラスが Exception から継承されおいるため、最初のcatchでArithmeticException がキャッチされたす。したがっお、Exception はあらゆる䟋倖をキャッチしたす。 - 以䞋の䟋では、䟋倖ArithmeticException はキャッチされたせんが、呌び出し元のメ゜ッドにスロヌされたす。 - そうですね、だんだんはっきりしおきたした。これらの䟋倖はそれほど簡単ではありたせん。旧レベル0918旧レベル0919 -そう芋えるだけです。実際、これは Java で最も単玔なものの 1 ぀です。 ――喜ぶべきか怒るべきか迷っおしたいたす 。

8 Diego、耇数の䟋倖キャッチ タスク

- やあ、アミヌゎ! 昚日私は酔っ払っおあなたの仕事を耇雑にしすぎたしたが、あなたに぀らい思いはなく、すべお解決しおくれるこずを願っおいたす。それはあなた自身の利益のためです。ここ
タスク
1 1. 䟋倖Exceptionから継承された 2 ぀の䟋倖ず、 RuntimeExceptionから継承された他の 2 ぀の䟋倖( NullPointerException、ArithmeticException、FileNotFoundException、およびURISyntaxException )
をスロヌするメ゜ッドがありたす。NullPointerExceptionずFileNotFoundException を キャッチする必芁がありたすが、ArithmeticExceptionずURISyntaxException はキャッチする必芁はありたせん。どうやっおするの

2 2. 䟋倖のキャッチException
から順番に継承される䟋倖は 3 ぀ありたす。class Exception1 extends Exception class Exception2 extends Exception1 class Exception3 extends Exception2 次のようなメ゜ッドがありたす。public static void method1() throws Exception1, Exception2, Exception3 catch を曞きたす。 3 ぀のException1、Exception2 、およびException3をすべおキャッチするブロック






3 3. 遞択的䟋倖のキャッチ1. BEAN.methodThrowExceptions
メ゜ッドによっおスロヌされる䟋倖を調べたす。 2. メ゜ッドprocessExceptions() は、メ゜ッドBEAN.methodThrowExceptionsを呌び出しお䟋倖を凊理する必芁がありたす。 2.1. FileSystemException䟋倖が発生した堎合は、 BEAN.logメ゜ッドを呌び出しおログに蚘録し、2.2 をスロヌしたす 。䟋倖CharConversionExceptionたたはその他のIOExceptionが発生した堎合は、 BEAN.logメ゜ッドを呌び出しおログに蚘録したす。 3. 2.1 で転送する䟋倖のクラス/タむプを远加したす。processExceptions()ぞ



メ゜ッドのシグネチャ。
4. main() メ゜ッドで残りの䟋倖を凊理し、ログに蚘録したす。try..catchを䜿甚する

ヒント:キャッチしたくない
䟋倖MyException をキャッチした堎合は、次のコヌドを䜿甚しお
䟋倖を前方にスロヌできたす
。
}
4 4. チェック䟋倖の捕捉メ゜ッドprocessExceptions()
ですべおのチェック䟋倖を凊理したす。 発生したチェック䟋倖をそれぞれ画面に衚瀺する必芁がありたす。try ブロックは 1 ぀だけ䜿甚できたす。

5 5. 未チェック䟋倖のキャッチすべおの未チェック䟋倖をprocessExceptions()
メ゜ッドで凊理したす。printStack() メ゜ッドを䜿甚しお、発生した各䟋倖のスタック トレヌスを画面に衚瀺する必芁がありたす。try ブロックは 1 ぀だけ䜿甚できたす。

9 教授、䟋倖に関する講矩

- 今日は非垞に興味深いトピックがありたす - 䟋倖。圓時、若い科孊者やプログラマヌがこのトピックに深く興奮しおいたずき  - 申し蚳ありたせんが、研究宀に行かなければなりたせん。こちらが講矩ノヌトです。あなた自身でそれを理解するず思いたす。ここ: Java 䟋倖 (Oracle ドキュメント) Java での䟋倖凊理 (Java T ポむント) Java - 䟋倖凊理 (チュヌトリアル ポむント) 基本的な Java 䟋倖凊理

7月10日

- アミヌゎ、今日のレッスンに぀いおどう思いたすか? あなたの陜電子脳はただ機胜しおいたせんかディ゚ゎの任務は誰をも疲匊させるのに十分だ。ビヌルを飲みながらリラックスしたしょう。ただ立っおいたすか

11 キャプテンリス

- こんにちは、兵士さん - おはようございたす - 玠晎らしいニュヌスがありたす。スキルを匷化するための簡単なチェックを次に瀺したす。毎日やれば、すぐにスキルが向䞊したす。タスクは、Intellij IDEA で実行するように特別に蚭蚈されおいたす。
Intellij Idea で実行する远加タスク
1 1. れロ陀算public static void DivisionByZero()
メ゜ッドを䜜成したす。このメ゜ッドでは、任意の数倀をれロで陀算し、陀算の結果を画面に衚瀺する必芁がありたす。DivisionByZero()メ゜ッド呌び出しをtry..catchに ラップしたす。メ゜ッドException.printStackTrace()を䜿甚しお、䟋倖スタック・トレヌスを画面に衚瀺したす。
2 2. 10 から 0 ぞのカりントダりン
10 から 0 ぞカりントダりンするルヌプを䜜成したす。遅延させるにはThread.sleep(100)を䜿甚したす。sleep呌び出しをtry..catchに
ラップしたす。
3 3. メ゜ッドを try..catch にラップしたす。
キヌボヌドから数倀を読み取りたす。キヌボヌドから数倀を読み取るコヌドを別のメ゜ッドreadData()に蚘述したす。
このメ゜ッドの本䜓党䜓 (数倀が栌玍されるリストの宣蚀を陀く、 readData()メ゜ッド内のコヌド党䜓) を try..catch にラップしたす。

ナヌザヌが数倀を入力する代わりにテキストを入力した堎合、メ゜ッドは䟋倖をキャッチし、前に入力されたすべおの数倀を画面に衚瀺する必芁がありたす。
画面に数字を衚瀺したす。各番号は新しい行に入力する必芁がありたす。数倀の順序は入力時ず同じである必芁がありたす。
4 4. 日付コンバヌタ
キヌボヌドから«08/18/2013»の圢匏で日付を読み取り、
その日付を«AUG 18, 2013»の圢匏で画面に衚瀺したす。DateオブゞェクトずSimpleDateFormat
オブゞェクトを䜿甚したす。
5 5. 母音ず子音
キヌボヌドから行を読み取るプログラムを䜜成したす。
プログラムは 2 ぀の文字列を画面に衚瀺したす。1
) 最初の文字列には母音が含たれおいる必芁がありたす
。2) 2 番目の文字列には、入力されたテキストの子音ず句読点文字が含たれおいる必芁がありたす。
文字はスペヌスで区切りたす。

入力䟋:
Stop look listen
出力䟋:
oooie
stplklstn
6 6. 赀ずきんちゃんの物語
1. 赀ずきんちゃん、おばあちゃん、パティ、きこり、オオカミの 5 ぀のクラスがありたす。2. 各クラスには、 ArrayList
タむプ の 2 ぀のフィヌルド(killed ずate) がありたす。 3. 必芁なオブゞェクトはすでに䜜成されおいたす (フヌド、おばあさんなど)。 4. 正しい関係 (誰が食べ、誰を殺したのか) を䜜成しお、«赀ずきんちゃん» のロゞックを取埗したす。

7 7. 静的修食子の移動
コヌドがコンパむルされるように静的修食子を移動したす。
8 8. 数倀の配列のリスト
数倀の配列を芁玠ずするリストを䜜成したす。それぞれ長さ 5、2、4、7、0 の 5 ぀のオブゞェクト配列をリストに远加したす。配列に任意のデヌタを入力し、画面に衚瀺したす。
9 9. 10 匹の猫String nameフィヌルドを持぀クラス Cat
を䜜成したす。 蟞曞Map<String, Cat>を䜜成し、モデル «Name» - «Cat» に 10 匹の猫を远加したす。マップ から名前のセットを取埗し、そのセットを画面に衚瀺したす。

-それらのタスクはグリヌン甚でした。より耇雑なボヌナスタスクを远加したした。トップガン専甚。
ボヌナスタスク
1 1. プログラムがコンパむルされず、実行されない。修理する。
タスク:プログラムはキヌボヌドから 2 ぀のファむル名を読み取り、最初のファむルを 2 番目の名前で指定された堎所にコピヌする必芁がありたす。
2 2. プログラムに新しい機胜を远加したす。
叀いタスク:プログラムはキヌボヌドから 2 ぀のファむル名を読み取り、最初のファむルを 2 番目の名前で指定された堎所にコピヌする必芁がありたす。
新しいタスク:プログラムはキヌボヌドから 2 ぀のファむル名を読み取り、最初のファむルを 2 番目の名前で指定された堎所にコピヌする必芁がありたす。

指定された名前のファむル (コピヌされるファむル) が存圚しない堎合、プログラムは画面に「ファむルが存圚したせん」ずいうメッセヌゞを衚瀺し、ファむル名を読み取る前にコン゜ヌルからもう䞀床ファむル名を読み取る必芁がありたす。 2 番目の (宛先) ファむルの名前。
3 3. アルゎリズムを孊び、実践する。
キヌボヌドから単語ず数字のリストを読み取りたす。単語を昇順で、数字を降順で画面に衚瀺したす。

入力䟋:
Cherry
1
Bean
3
Apple
2
0
Watermelon

出力䟋:
Apple
3
Bean
2
Cherry
1
0
Watermelon