catchブロックは複数記述できない【JavaScript】

「try catch finally」ってJavaにもJavaScriptにもあるんだけど、Javaではcatchブロックを例外の種類別に複数用意できるけど、JavaScriptでは例外(errorオブジェクト)を一つしか設定できないのでcatchブロックは一つしか使えない。例外の種類はerrorオブジェクトのプロパティで判断する。

 

こういう細かいところで違いがあるのよね。

Windows10のVS Codeで使える便利なショートカットキー

VS Codeで覚えた(多分すぐ忘れる)ショートカットキーとかをメモしておきます。

毎日、コードをごりごりに書きまくってれば無意識にやれるんだろうけど、たまに資料のコードの動作確認するレベルだと、全く身につかないよね。

環境はWindows10 のVS Codeです。

 

それでは今回覚えたのは、下記のショートカットキー。

  • 行(複数行)の上下移動
    行を選択後、Alt +↓ or ↑
  • コードの整形
    Ctrl + Shitf + f
  • 名付け、まとめてリネーム(名前変更)
    該当の変数を選択後、F2すると、名前変更できる
  • ブラウザで動作確認
    該当のHTMLファイルを選択した状態でAlt + b

これ以降、このドキュメントに順次追加していくかも。続けば。

VS Codeでショートカットキーのトラブル

Visual Studio Code(以下VS Code)っていう便利なエディタを最近使い始めたのですが、仕事用の貸し出しPCが最新のものになって、一通り環境を移し替えれたかなぁと思い始めた年明けですが、環境が変わったせいかエディタとしてのデフォルト設定のショートカットキーが、一部動作しない、という小さな事件がありました。

僕が今回使えなくなったのは、「Ctrl + Shift + K」で「カーソルのある行を1行削除」という何てこともないショートカットでした。

まず自分が疑ったのが、ノートPCのCtrlかShiftキーが今までのノートPCとは勝手が違うのかな?という点でした。実際にF1~F12キーは他のキーと兼用で、fnキーを押しながらでないと有効にならなかったりするのは使いにくいなぁとおもっておりました。

そしてfnキー押しながらShiftキーを押すとfnキーの上に小さなLEDが点灯します。

しかし、fnキーのLED点灯、消灯バージョンでどちらも動作しません。

その後は心当たりあるのは… VS Code拡張機能でもしかして同じショートカットキーをつかう拡張を入れてしまったのでは… 正解でした。

上部メニューから「ファイル」→「ユーザー設定」→「キーボードショートカット」で「Ctrl + Shift + K」を検索すると、デフォルト以外にNotepad++拡張が、このショートカットを割り当てていて、そちらが有効化されているようでした。

 

何でこの拡張機能を入れたのだろう...

 

ひとまず解決。

センシティブな髪の毛の話題

私は10年ほど前からAGAの為のお薬、フィナステリド(プロペシア)を1日1錠ずつ服用し続けている。

10年ほど前は、鏡を見ても全体のボリュームが無くなってきたのは感じていたのだが、おでこ禿げの知人に「後頭部やばいよ」と言われてから気づいた。ザビエル状態であった。

ただ、完全に不毛地帯になっているわけではなく、毛根が弱っていて頭頂部付近の毛根から生えている毛が少なく(通常は、2,3本生えている)、しかも毛自体が細くなっていた。

毛根がいったん死ぬと、生き返ることはほぼ無いと知り、早速近所のAGA対応の皮膚科に行って診断してもらい、ひとまずプロペシアを処方してもらった。

 

先生曰く、増えることはないが、男性ホルモンを抑えるので5αリアクターゼが毛根にダメージを与えなくなる、今弱っている毛根から逞しい毛が生えてくる、ということらしい。

最初の1,2年はそこまで即効性は感じなかったが、服用後5年くらい経って以前髪をきってもらっていた床屋さんに何も言わずに散髪してもらった時、「髪増えた?前はだいぶ頭頂部薄くなっていたけど、今は全然わからないくらい戻ったね」とありがたい言葉をいただいた。

 

フィナステリド、副作用として男性ホルモン抑制するので性欲が落ちる。あとこれはあまり誰も言ってくれないが、フィナステリドを服用していると、献血ができない。(女性には禁忌の薬でもあるので)

 

ちなみにお値段だけど、保険適用外なのでちょっと高い。大体1日1錠100円と考えた方がいい。僕は最近ファイザー製のジェネリックを使ってる。

 

高いシャンプーやトリートメントは、自分にとっては全く意味が無かった。

Oracle DB のセットアップでてこずる

Oracle DBを使った案件があるので、自分のPCにテスト用環境をインストールした。

情けない話だが、一旦初期環境のDBの文字コードが案件と合ってなかったので、ひとまずOracle DBに初期ログインしようとしたが、弾かれた。

Oracle DBがそもそも起動していなかったのと、初期ログインのユーザー名がSYSでもSYSDBAでもSYSなんたらでもなくSYSTEMだった。これだけでてこずった。

教本の誤記

Spring Frameworkの勉強やってるんだけど、教本通りに打ってもブラウザ表示にエラー出ちゃってて、エラーの内容見てたら教本がvariableをvaliableって誤記してるからだった。全部が誤記だったら名前一致して通るんだけど、一部が正しいスペルだったので弾かれた… こういうの、罪深いよね。

Spring Frameworkでよく見かけるDependency Injection(DI)って

よく、直訳で「依存性の注入」なんて書いてあるとさ、不法なお薬を注射してるみたいでピンと来なくて、本を読みながら自分なりに考えた。

実装や継承なんかでそのインターフェースや親クラスに依存している、っていう言い方するよね。

その依存性の方向性を逆にすること、なんじゃないかな。だから@Componentアノテーションを付け替えるだけでプログラムを修正できる。DIの仕組みが無いと呼び出し側のコードの中で、名前を変更しないといけない。使う側の変更箇所が無くなる。

newでインスタンス生成しなくてよくなる。@Autowiredで注入(インスタンス生成)させたいところを指定する。

 

認識あってるかなぁ?