<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ### 異常處理 Clojure代碼里面拋出來的異常都是運行時異常。當然從Clojure代碼里面調用的java代碼還是可能拋出那種需要檢查的異常的。 `try` , `catch` , `finally` 以及 `throw` 提供了和java里面類似的功能: ``` (defn collection? [obj] (println "obj is a" (class obj)) ; Clojure collections implement clojure.lang.IPersistentCollection. (or (coll? obj) ; Clojure collection? (instance? java.util.Collection obj))) ; Java collection? (defn average [coll] (when-not (collection? coll) (throw (IllegalArgumentException. "expected a collection"))) (when (empty? coll) (throw (IllegalArgumentException. "collection is empty"))) ; Apply the + function to all the items in coll, ; then divide by the number of items in it. (let [sum (apply + coll)] (/ sum (count coll)))) (try (println "list average =" (average '(2 3))) ; result is a clojure.lang.Ratio object (println "vector average =" (average [2 3])) ; same (println "set average =" (average #{2 3})) ; same (let [al (java.util.ArrayList.)] (doto al (.add 2) (.add 3)) (println "ArrayList average =" (average al))) ; same (println "string average =" (average "1 2 3 4")) ; illegal argument (catch IllegalArgumentException e (println e) ;(.printStackTrace e) ; if a stack trace is desired ) (finally (println "in finally"))) ``` 上面代碼的輸出是這樣的: ``` obj is a clojure.lang.PersistentList list average = 5/2 obj is a clojure.lang.LazilyPersistentVector vector average = 5/2 obj is a clojure.lang.PersistentHashSet set average = 5/2 obj is a java.util.ArrayList ArrayList average = 5/2 obj is a java.lang.String #<IllegalArgumentException java.lang.IllegalArgumentException: expected a collection> in finally ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看