小编mic*_*den的帖子

如何在Console上停止打印异常堆栈跟踪?

我编写了一个servlet来处理我的Web应用程序中发生的异常并将它们映射到web.xml中

    <error-page>
      <exception-type>java.lang.Exception</exception-type>
      <location>/exceptionHandler</location>
    </error-page>
Run Code Online (Sandbox Code Playgroud)

这是我在异常处理servlet service方法中所做的:

@Override
    protected void service(HttpServletRequest req, HttpServletResponse arg1)
            throws ServletException, IOException {
         Object attribute = req.getAttribute("javax.servlet.error.exception");
         if(attribute instanceof  SocketException){
            // don't do anything 
         }else{
          super.service(req, arg1);
         }
    }.
Run Code Online (Sandbox Code Playgroud)

问题:

上述方法不起作用,堆栈跟踪正在打印到控制台.当用户请求某些内容然后关闭其浏览器时会发生这种情况.

题:

每当SocketException发生时,如何停止将printtrace打印到JBoss控制台?

这样做的原因:

我想避免SocketException在第一天结束时看到所有日志,因为我无法对这些信息做任何事情.

java tomcat web.xml servlets socketexception

19
推荐指数
3
解决办法
1万
查看次数

如何为从Google Domains到Heroku的裸域设置SSL?

我正在尝试使用Heroku的自动证书管理为我的网站设置SSL.我的应用程序在heroku上myapp.herokuapp.com,我目前有子域转发设置,以便http://www.myapp.com正确显示我的应用程序.

我想要的是将我的网站托管在https://myapp.com.

我跑了heroku certs:auto:enable,但它显示:

=== Automatic Certificate Management is enabled on myapp

Domain             Status
?????????????????  ???????????
www.myapp.com      Failing
Run Code Online (Sandbox Code Playgroud)

跑步heroku domains节目:

=== myapp Heroku Domain
myapp.herokuapp.com

=== myapp Custom Domains
Domain Name        DNS Target
?????????????????  ???????????????????????????????
www.myapp.com      www.myapp.com.herokudns.com
Run Code Online (Sandbox Code Playgroud)

眼下,谷歌域名,我有一个子域从转发@.myapp.comhttp://www.myapp.com.我还有一个自定义资源记录,其中包含名称www,类型CNAME和数据myapp.herokuapp.com..

我需要在设置中更改哪些内容才能托管我的网站https://myapp.com

dns ssl https heroku google-domains

19
推荐指数
1
解决办法
2247
查看次数

IntelliJ中的简单自定义重构

这个问题是一个跟进这个.

说我有一些课Foo.

class Foo {
    protected String x = "x";

    public String getX() {
        return x;
    }
}
Run Code Online (Sandbox Code Playgroud)

我有一个程序使用Foo并违反了LoD(Demeter法则).

class Bar {
    protected Foo foo;

    public Bar() {
        this.foo = new Foo();
    }

    public Foo getFoo() {
        return foo;
    }
}

public static void main(String [] args) {
    Bar bar = new Bar();
    String x = bar.getFoo().getX(); 
}
Run Code Online (Sandbox Code Playgroud)

我可以通过两个步骤重构此代码以使用LoD.

  1. m bar.getFoo().getX()- > getFooX(bar)(提取到方法,也可以查找和替换出现)
  2. F6 getFooX(bar)- > bar.getFooX()(转到实例方法,也找到并替换出现)

使用的程序Bar不再违反LoD. …

java refactoring intellij-idea law-of-demeter automated-refactoring

16
推荐指数
1
解决办法
1276
查看次数

这个基于Java状态的设计模式的名称是什么?

在我的工作中,我们进行了调查,一项调查涉及多个步骤.我从事自动化工作,所以我围绕为这些调查创建的页面对象设计测试.我们将此特定调查称为"流量"调查,因为它有多个步骤.因此,您可以跳过步骤1(调查A),然后完成或跳过步骤2(调查B),然后完成或跳过步骤3(调查C).天真地,我们可以编写一个测试,其中只有以下方法:

public void completeSurveyA() {
    //...
}
public void skipSurveyB() {
    //...
}
public void completeSurveyB() {
    //...
}
public void skipSurveyC() { 
    //...
}
public void completeSurveyC() {
    //...
}
Run Code Online (Sandbox Code Playgroud)

你会像这样使用它

completeSurveyA();
skipSurveyB();
completeSurveyC();
Run Code Online (Sandbox Code Playgroud)

然而,这可能是一个问题,因为我们可能会completeSurveyB()在打电话completeSurveyA(),打电话completeSurveyA两次等之前打电话,测试会中断.为了避免这种情况,我介绍了一种不同的方法,在surveyA上调用方法将返回一个surveyB对象,该对象将返回一个surveyC对象.

public class SurveyFlow() {
    public SurveyB completeSurveyA() {
        //...
        return new SurveyB();
    }
    private class SurveyB() {
        public SurveyC skipSurveyB() {
            //...
            return new SurveyC();
        }
        public SurveyC completeSurveyB() {
            //...
            return new SurveyC();
        }
        private class SurveyC() …
Run Code Online (Sandbox Code Playgroud)

java design-patterns

7
推荐指数
1
解决办法
409
查看次数

将我的 .g4 转换为 .flex 和 .bnf 以用于 IDEA 语法荧光笔

我以前从未使用过 JFlex,也不知道它是如何工作的。基本上,我已经用 Java 为一种方案式语言构建了一个运行时,并且我的解析器是使用 Antlr 4 生成的,所以我有一个 .g4 文件,如下所示:

program: expression EOF;
expression: lambdaAbstraction | application| literal;

lambdaAbstraction: LP WS? LAMBDA (WS IDENTIFIER)* WS expression WS? RP;
application: LP WS? expression (WS expression)* WS? RP;
literal: FLOAT_LITERAL | INTEGER_LITERAL | IDENTIFIER | STRING_LITERAL;

STRING_LITERAL: '"' ~["]* '"' | '\'' ~[']* '\'' ;
FLOAT_LITERAL: [0-9]+ '.' [0-9]+;
INTEGER_LITERAL: [0-9]+;
IDENTIFIER: [a-zA-Z+/*-=?@]+;
LAMBDA: '\\';
LP: '(';
RP: ')';
WS: [ \n\r\t]+;
Run Code Online (Sandbox Code Playgroud)

一些例子(这样你可以感受到语法)。

  1. (+ 1 2)= 3

  2. ((\ a b (+ a …

syntax-highlighting jflex intellij-plugin grammar-kit

7
推荐指数
0
解决办法
1305
查看次数

如何抛出std :: invalid_argument错误?

Fraction在C++中的类中有一个重载运算符,它被设计为以整数形式从标准输入获取输入,1/2或者根据这些值32/4初始化Fraction对象.它有效,但我在捕捉错误方面遇到了麻烦.

// gets input from standard input in the form of (hopefully) int/int
std::istream& operator >>(std::istream& inputStream, Fraction& frac)
{
    int inputNumerator, inputDenominator;
    char slash;

    if ((std::cin >> inputNumerator >> slash >> inputDenominator) && slash == '/')
    {
        if (inputDenominator == 0)
        {
            std::cout << "Denominator must not be 0." << std::endl;
            throw std::invalid_argument("Denominator must not be 0.");
        }
        frac.numerator = inputNumerator;
        frac.denominator = inputDenominator;

        frac.reduce();
    }
    else
    {
        throw std::invalid_argument("Invalid syntax."); …
Run Code Online (Sandbox Code Playgroud)

c++ error-handling user-input inputstream try-catch

6
推荐指数
1
解决办法
3万
查看次数

RegEx用于解析化学式

我需要一种方法将化学式分离成其组分.结果应如下所示:

   Ag3PO4 -> [Ag3, P, O4]
      H2O -> [H2, O]
   CH3OOH -> [C, H3, O, O, H]
Ca3(PO4)2 -> [Ca3, (PO4)2]
Run Code Online (Sandbox Code Playgroud)

我不知道正则表达式语法,但我知道我需要这样的东西

[可选括号] [大写字母] [0或更多小写字母] [0或更多数字] [可选括号] [0或更多数字]

这很有效

NSRegularExpression *regex = [NSRegularExpression
                              regularExpressionWithPattern:@"[A-Z][a-z]*\\d*|\\([^)]+\\)\\d*"
                              options:0
                              error:nil];
NSArray *tests = [[NSArray alloc ] initWithObjects:@"Ca3(PO4)2", @"HCl", @"CaCO3", @"ZnCl2", @"C7H6O2", @"BaSO4", nil];
for (NSString *testString in tests)
{
    NSLog(@"Testing: %@", testString);
    NSArray *myArray = [regex matchesInString:testString options:0 range:NSMakeRange(0, [testString length])] ;
    NSMutableArray *matches = [NSMutableArray arrayWithCapacity:[myArray count]];

    for (NSTextCheckingResult *match in myArray) { …
Run Code Online (Sandbox Code Playgroud)

regex objective-c

6
推荐指数
1
解决办法
4183
查看次数

同一个PFObject子类的多个子类导致错误

我在Swift中为我的PFObject子类设置了这个非常简单的设置.

  • Foo:PFObject
  • Bar1:Foo
  • Bar2:Foo

这是他们在代码中的样子:

import Foundation

class Foo : PFObject, PFSubclassing
{
    class func parseClassName() -> String!
    {
        return "Foo"
    }
}
Run Code Online (Sandbox Code Playgroud)

BAR1

import Foundation

class Bar1 : Foo {}
Run Code Online (Sandbox Code Playgroud)

BAR2

import Foundation

class Bar2 : Foo {}
Run Code Online (Sandbox Code Playgroud)

AppDelegate中 didFinishLaunching

Foo.registerSubclass()
Bar1.registerSubclass()
Bar2.registerSubclass()
Parse.setApplicationId("APP_ID", clientKey: "CLIENT_KEY")
Run Code Online (Sandbox Code Playgroud)

然后我在运行时收到此错误:

Tried to register both _TtC9CardForge4Bar1 and _TtC9CardForge4Bar2 as the native 
PFObject subclass of Foo. Cannot determine the right class to use because neither 
inherits from the other.
Run Code Online (Sandbox Code Playgroud)

看来我不能拥有一个PFObject子类的多个子类,但我在文档中看不到任何内容.这里发生了什么?什么是原生子类?

parse-platform swift

6
推荐指数
1
解决办法
521
查看次数

numpy中的随机单热矩阵

我想制作一个x形状矩阵(n_samples, n_classes),每个矩阵x[i]都是一个随机的单热矢量.这是一个缓慢的实现:

x = np.zeros((n_samples, n_classes))
J = np.random.choice(n_classes, n_samples)
for i, j in enumerate(J):
    x[i, j] = 1
Run Code Online (Sandbox Code Playgroud)

什么是更加pythonic的方式来做到这一点?

python arrays numpy

6
推荐指数
1
解决办法
2427
查看次数

在 GoLang 中获取结构化堆栈信息

我正在考虑使用它runtime.Stack来解析有关 goroutine 的信息(寻找泄漏)。问题在于,runtime.Stack将其输出作为必须解析的字符串返回,并且需要足够大小的字节缓冲区输入。我知道有一些库,例如gostackparsepanicparse,但它们都不适用于GODEBUG=tracebackancestors=<n>(其中 n > 0)。我需要这个,因为我想验证当前堆栈帧的后代 goroutine 的泄漏。

有没有办法获得runtime.Stack适用的结构化输出tracebackancestors

go

6
推荐指数
0
解决办法
173
查看次数