close

  佩服Rex鍥而不捨的測試,Notes在Java的運作真的有夠OOXX,Session、Database和Form這祖孫三代物件,完全不像一脈相承的物件。就列舉這三代物件每一代若設錯會如何?

  1. 建立Session要Server URL和登入者帳密,若Server URL是不正確或找不到的,丟出的Exception如下,是最正常的反應了。

    NotesException: Could not get IOR from Domino Server: java.net.UnknownHostException: NOTESHOST
        at lotus.domino.NotesFactory.requestIORPlain(Unknown Source)
        at lotus.domino.NotesFactory.requestIORUsingArgs(Unknown Source)
        at lotus.domino.NotesFactory.getIOR(Unknown Source)
        at lotus.domino.NotesFactory.createSessionUP(Unknown Source)
        at lotus.domino.NotesFactory.createSession(Unknown Source)

  2. 取得Database要Server URL和Database Name,要是Database不存在,Database db = session.getDatabase應該會return null,但有時不會,一定要對db物件做method存取,如:db.getLastModified(),才會丟出如下Exception,才能確保在程式裡確認DB真的不存在。

    NotesException: Database TESTDB.NSF has not been opened yet
        at lotus.domino.NotesExceptionHelper.read(Unknown Source)
        at lotus.domino.NotesExceptionHolder._read(Unknown Source)
        at lotus.priv.CORBA.iiop.RepImpl.invoke(Unknown Source)
        at lotus.priv.CORBA.portable.ObjectImpl._invoke(Unknown Source)
        at lotus.domino.corba._IDatabaseStub.getLastModified(Unknown Source)
        at lotus.domino.cso.Database.getLastModified(Unknown Source)

  3. 以前解釋過Form只是一筆record裡的欄位,同樣Form值群聚成一個Form。所以Form沒有存不存在的問題,沒有這個Form值就會新增這個Form值,不會丟出Exception。
arrow
arrow
    全站熱搜

    Jemmy 發表在 痞客邦 留言(0) 人氣()