Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

errorId 生成问题 #53

Open
knockkk opened this issue Jan 12, 2022 · 5 comments
Open

errorId 生成问题 #53

knockkk opened this issue Jan 12, 2022 · 5 comments

Comments

@knockkk
Copy link

knockkk commented Jan 12, 2022

Describe the bug
A clear and concise description of what the bug is.
如下代码中的两个错误具有相同的 name 和 messag,但是错误栈stack不同。monitor中将它们归类为了一类错误,计算的errorId相同,是否有问题?

const Example = () => {
  const handleClick = () => {
    const a = [1, 2];
    return a.map((item) => item.split('')); // 1. TypeError: item.split is not a function
  };
  const anotherClick = () => {
    const a = [1, 2];
    return a.map((item) => item.split('')); // 2. TypeError: item.split is not a function
  };
  return (
    <div>
      <button onClick={handleClick}>Click1</button>
      <button onClick={anotherClick}>Click2</button>
    </div>
  );
};

Expected behavior
A clear and concise description of what you expected to happen.

Information

  • Mitojs Version [e.g. v2.0.0]
  • Environment: [e.g. Vue2.6、Vue3.0、React17.0]
  • Error info stack [e.g. MITO is not defined]
@Chryseis
Copy link
Collaborator

计算错误id,主要是为了上报数据后归类是不是同类型错误。当然错误栈维度也可以加入计算,这样分类可以更细。但过细的分类,其实也没有太大的意义,因为上报错误之后,你可以直接看到错误栈。

@knockkk
Copy link
Author

knockkk commented Jan 12, 2022

计算错误id,主要是为了上报数据后归类是不是同类型错误。当然错误栈维度也可以加入计算,这样分类可以更细。但过细的分类,其实也没有太大的意义,因为上报错误之后,你可以直接看到错误栈。

嗯嗯可以理解errorId是为了归类同类型错误的,只是我在个人使用的时候遇到了疑惑。就拿这个例子来说,生成 errorId 时会参考 TypeError 和 item.split is not a function 这两个值,把它们归类为一种错误。但常规情况下是不会出现我例子中的这种情况的,也就是它大概率只会在项目中的一处代码里出现,所以实际情况中错误栈都是相同的,但由于这里没有把错误栈包含在计算errorId的逻辑里,我不得不对每个上报的error都存一遍错误栈信息,而实际上它可能是冗余的。

@knockkk
Copy link
Author

knockkk commented Jan 22, 2022

可以解答一下这个问题不

@Chryseis
Copy link
Collaborator

Chryseis commented Jan 22, 2022

可以解答一下这个问题不

对于上报异常本身来说,每次都上报错误栈应该是必须的,不太赞同冗余的说法,但对于错误栈如何使用,或者你举例的场景中,其实可以在上报服务中根据错误栈进行筛选,然后再将异常入库

@knockkk
Copy link
Author

knockkk commented Jan 27, 2022

哦哦好的,感谢~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants