try … catch

あるファイルを読み込んで処理をしている最中のエラーについて、何行目でエラーが発生しているかを確認しようとおもって、「try catch」を使っていたのですが、全然効果がありません。

はまったのですが、結局、catch していた例外がIOExceptionで、発生しているExceptionは別の型だったので、追加した処理は実行されていなかったのでした。とりあえずException全部をcatchするようにして対応しました。

ちょっとしたツールで、結構前に作ったものなので、処理を忘れてしまっていたのが、はまった原因ですが、こういう単純なミスほど気づきにくいものです。

カテゴリー: Java

のんびり

久しぶりに、電話が1回しかならないのんびりした1日でした。ここのところ、電話でよく呼び出しをされていたので、結構大変だったのだと思います。ドキュメント作成に集中できました。プログラミングに集中でないあたりがいまいちですが 🙂

マシンメンテナンス

久しぶりにマシンをメンテナンスできました。メンテナンスといっても、ちょっとしたバックアップがとれたとか、久しぶりに起動してセキュリティアップデートをした、ということぐらいですが…

もう少し、毎日の仕事についてルーチンを考えたいところです。

JavaでJavaScript

JavaScriptをJavaで実行するプログラムは簡単に作れるので、ちょっと用意してみた。Java6ではRhinoが同梱されていますが、その挙動を確認するのに便利です。直接書き込む方法と、a.jsというファイルを用意して読み込む方法と、両方用意してみました。

import javax.script.*;
import java.io.*;

public class Script {
 public static void main(String[] args) throws Exception {
  Script app = new Script();
  app.run1();
  app.run2();
 }
 public void run1() throws Exception {
  ScriptEngineManager m = new ScriptEngineManager();
  ScriptEngine engine = m.getEngineByName("JavaScript");
  try {
    engine.eval("print(‘Hello, world!’)");
  } catch (ScriptException e) {
    e.printStackTrace();
  }
 }
 public void run2() throws Exception {
  ScriptEngineManager m = new ScriptEngineManager();
  ScriptEngine engine = m.getEngineByName("ECMAScript");
  InputStream is =
      this.getClass().getResourceAsStream("a.js");
  try {
    Reader reader = new InputStreamReader(is);
    engine.eval(reader);
  } catch (ScriptException e) {
    e.printStackTrace();
  }
 }
}

ちなみに、a.js の内容は次のような感じの内容。

print("\nhello\n");
var itemTitle = "&abc&def&";
re1 = new RegExp("&", "g");
itemTitle = itemTitle.replace(re1, "&");
print(itemTitle);

スクリプト

きちんとしたシステムを組みたいときには使えない手ですが、やはりちょっとした作業にはスクリプトでちょこちょことプログラムを組むのが楽ですね。ただ、普段使い慣れているのがJavaなので、シェルスクリプトや他の言語でもできそうなことであっても、ついついJavaで実装してしまいます。

そうすると、Javaでスクリプトみたいな感じになって、混沌としたプログラムができあがってきてしまうわけですが、まぁ、世の中そういうものだ、ということで。

実際のところ、思いつくままに書いていた方が楽ですね。考えを整理して効率良くとかやっていると、実際のプログラムが出来上がってこなくて、現場での問題に対応できなくなったり。

もちろん、できあがりのイメージがないままで、つっぱしるのはいけませんが、大体のイメージをもちながら、ざーっと作って、細かいところも後で作りこめるようにしておく、というのができるようになりたいところです。

MTOS 5

インストールはしてみたが、まだ使ってみていない。なかなか時間がとれないなぁ。Webサイトに複数のブログが含まれるという想定がされているようですね。