代码无法在 Node.JS 中输出错误或异常
Code fails to output errors or exceptions in Node.JS
我正在使用一个名为 GitNode 的 Node.JS 库。我认为这不重要,但基本上它是 Node.JS.
中 git 命令的 API
我有一段代码,其目的是在现有存储库中创建一个新分支。在 运行 运行代码后,我知道它没有创建存储库,而且我也知道它无法正常工作。
这是我的全部代码:
var Git = require("nodegit");
var getMostRecentCommit = function(repository) {
return repository.getBranchCommit("master");
};
var makeBranch = function(respository) {
console.log("in here1")
repository.createBranch("tester", getMostRecentCommit(repository)).then(
function(reference) {
console.log("good")}, // if it works
function(reasonForFailure) {
console.log("bad_error")}) // createBranch has error case
.catch(function(reasonForFailure) {
console.log("bad_catch")}); // if the error function fails, I also have a catch statement
};
Git.Repository.open("../test_repo")
.then(makeBranch);
我放置了很多 catch 语句,希望能找到我的错误。但我似乎无法输出任何东西。短语 "Bad_error" 或 "Bad_catch" 均未输出。
我知道代码已损坏,createBranch 无法正常工作。在调用 repository.createBranch
之后,我测试了一些本应 运行 的代码,但它从来没有 运行,因为调用 createBranch 之前的任何代码都将 运行。这表明 CreateBranch 是问题所在。
那么为什么我的错误没有被发现?
编辑
我已修复代码并输出错误(请参阅下面的答案),但我仍然想知道为什么我的其他 exceptions/error 语句无法工作。
所以,由于
,我解决了部分问题
我只需要在我的 Repository.open() 函数中添加一个 catch 语句。
var makeBranch = function(respository) {
console.log("in here1")
repository.createBranch("tester", getMostRecentCommit(repository)).then(
function(reference) {
console.log("good")},
function(reasonForFailure) {
console.log("bad_error")})
.catch(function(reasonForFailure) {
console.log("bad_catch")});
};
Git.Repository.open("../test_repo")
.then(makeBranch).catch(
function(reasonForFailure) {console.log("bad")}); // This Works
如果有人好奇,原来我传递的是变量 respository
而不是 repository
:p
这将输出bad
。所以这很好。我仍然不太明白为什么会这样,但我的其他 catch 语句却没有。我仍在寻找好的答案或解释。
我正在使用一个名为 GitNode 的 Node.JS 库。我认为这不重要,但基本上它是 Node.JS.
中 git 命令的 API我有一段代码,其目的是在现有存储库中创建一个新分支。在 运行 运行代码后,我知道它没有创建存储库,而且我也知道它无法正常工作。
这是我的全部代码:
var Git = require("nodegit");
var getMostRecentCommit = function(repository) {
return repository.getBranchCommit("master");
};
var makeBranch = function(respository) {
console.log("in here1")
repository.createBranch("tester", getMostRecentCommit(repository)).then(
function(reference) {
console.log("good")}, // if it works
function(reasonForFailure) {
console.log("bad_error")}) // createBranch has error case
.catch(function(reasonForFailure) {
console.log("bad_catch")}); // if the error function fails, I also have a catch statement
};
Git.Repository.open("../test_repo")
.then(makeBranch);
我放置了很多 catch 语句,希望能找到我的错误。但我似乎无法输出任何东西。短语 "Bad_error" 或 "Bad_catch" 均未输出。
我知道代码已损坏,createBranch 无法正常工作。在调用 repository.createBranch
之后,我测试了一些本应 运行 的代码,但它从来没有 运行,因为调用 createBranch 之前的任何代码都将 运行。这表明 CreateBranch 是问题所在。
那么为什么我的错误没有被发现?
编辑
我已修复代码并输出错误(请参阅下面的答案),但我仍然想知道为什么我的其他 exceptions/error 语句无法工作。
所以,由于
我只需要在我的 Repository.open() 函数中添加一个 catch 语句。
var makeBranch = function(respository) {
console.log("in here1")
repository.createBranch("tester", getMostRecentCommit(repository)).then(
function(reference) {
console.log("good")},
function(reasonForFailure) {
console.log("bad_error")})
.catch(function(reasonForFailure) {
console.log("bad_catch")});
};
Git.Repository.open("../test_repo")
.then(makeBranch).catch(
function(reasonForFailure) {console.log("bad")}); // This Works
如果有人好奇,原来我传递的是变量 respository
而不是 repository
:p
这将输出bad
。所以这很好。我仍然不太明白为什么会这样,但我的其他 catch 语句却没有。我仍在寻找好的答案或解释。