当我运行以下命令时,ArgumentError似乎忽略了rescue.来自Ruby的ArgumentError错误消息出现在控制台上,但我的puts消息却没有.我尝试使用TypeError和ZeroDivisionError进行救援,但它确实有效.
def divide(a, b)
begin
a.to_s + ' divided by ' + b.to_s + ' is ' + (a/b).to_s
rescue ArgumentError
puts 'there must be two arguments'
end
end
divide(4)
Run Code Online (Sandbox Code Playgroud) 我正在尝试在clojurescript中为three.js 创建一个场景示例.
我不是在做动画而只想显示静态场景(绿色块).
问题似乎出现在此函数中,该函数被调用以渲染场景.
(defn ^:export draw []
(.render renderer scene camera)
)
Run Code Online (Sandbox Code Playgroud)
这是从HTML进行调用的内容.
%script{:type => "text/javascript"}
three.demo.draw();
Run Code Online (Sandbox Code Playgroud)
它会看到并运行绘图功能,例如,当我将"HELLO"打印到文档正文时.
(.write js/document "HELLO")
Run Code Online (Sandbox Code Playgroud)
我不知道什么是错的,页面上的其他内容都会呈现.
在这个HTML文件中,我有
<script src='https://raw.github.com/mrdoob/three.js/master/build/three.js'></script>
<script src='js/main.js' type='text/javascript'></script>
<script type='text/javascript'>goog.require('main')</script>
Run Code Online (Sandbox Code Playgroud)
和
<script type='text/javascript'>
three.demo.draw();
</script>
Run Code Online (Sandbox Code Playgroud)
下面是main.js的结尾,它是从clojurescript文件创建的Javascript.
goog.provide("three.demo");
goog.require("cljs.core");
goog.require("goog.dom");
three.demo.scene = new THREE.Scene;
three.demo.camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1E3);
three.demo.renderer = new THREE.WebGLRenderer;
three.demo.renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(three.demo.renderer.domElement);
three.demo.geometry = new THREE.CubeGeometry(1, 1, 1);
three.demo.material = new THREE.MeshBasicMaterial(cljs.core.ObjMap.fromObject(["\ufdd0'color"], {"\ufdd0'color":255}));
three.demo.cube = new THREE.Mesh(three.demo.geometry, three.demo.material);
three.demo.scene.add(three.demo.cube);
three.demo.camera.position.setZ(5);
three.demo.draw …Run Code Online (Sandbox Code Playgroud) 我见过两个消息来源说以下是身份单身.但我不认为这是真的,因为它违反了第三个Monad法.
(defn result [v] (fn [] v))
(defn bind [mv f] (f (mv))
Run Code Online (Sandbox Code Playgroud)
失败了第三个Monad法
(bind (bind (result 3) identity) identity)
Run Code Online (Sandbox Code Playgroud)
内部绑定调用返回3,这不是monadic值,因此Java返回尝试调用函数的错误(3).
我错过了什么吗?