Меню

Too few arguments ошибка

Home »
C programming language

In this article, we are going to learn about an error which occurs in C programming language when we use less argument while calling a function. If we do this compiler will generate an error «Too few arguments to function».

Submitted by IncludeHelp, on May 15, 2018

Too few arguments to function in C language

This error occurs when numbers of actual and formal arguments are different in the program.

Let’s understand first, what actual and formal arguments are?

Actual arguments are the variables, values which are being passed while calling a function and formal arguments are the temporary variables which we declare while defining a function.

Consider the given example:

int sum(int a, int b, int c)
{
	return  (a+b+c);
}

int main()
{
	int x,y,z;
	x = 10; y = 20; z = 30;
	
	printf("sum = %dn",sum(x, y, z));
	
	return 0;
}

Here, actual arguments are x, y and z. Formal arguments are a, b and c.

When, the error «too few arguments to function is occurred»?

Remember: Number of actual arguments (the arguments which are going to be supplied while calling the function) must equal to number of formal arguments (the arguments which are declared while defining a function).

This error will occur if the number of actual and formal arguments is different.

Consider the above example, and match with these below given calling statements, these statements will generate errors:

printf("sum = %dn", sum(x, y));
printf("sum = %dn", sum(x));
printf("sum = %dn", sum(10, 20));

Example: (by calling functions with less number of arguments)

#include <stdio.h>

int sum(int a, int b, int c)
{
	return  (a+b+c);
}
int main()
{
	int x,y,z;
	x = 10; y = 20; z = 30;
	
	printf("sum = %dn", sum(x, y));
	printf("sum = %dn", sum(x));
	printf("sum = %dn", sum(10, 20));
	
	return 0;
}

Output

prog.c: In function ‘main’:
prog.c:12:23: error: too few arguments to function ‘sum’
  printf("sum = %dn", sum(x, y));
                       ^~~
prog.c:3:5: note: declared here
 int sum(int a, int b, int c)
     ^~~
prog.c:13:23: error: too few arguments to function ‘sum’
  printf("sum = %dn", sum(x));
                       ^~~
prog.c:3:5: note: declared here
 int sum(int a, int b, int c)
     ^~~
prog.c:14:23: error: too few arguments to function ‘sum’
  printf("sum = %dn", sum(10, 20));
                       ^~~
prog.c:3:5: note: declared here
 int sum(int a, int b, int c)
     ^~~
prog.c:9:10: warning: variable ‘z’ set but not used [-Wunused-but-set-variable]
  int x,y,z;
          ^

So, while calling a function, you must check the total number of arguments. So that you can save your time by this type of errors.

Example: (by calling functions with correct number of arguments)

#include <stdio.h>

int sum(int a, int b, int c)
{
	return  (a+b+c);
}
int main()
{
	int x,y,z;
	x = 10; y = 20; z = 30;
	
	printf("sum = %dn", sum(x, y, z));
	printf("sum = %dn", sum(x,y,z));
	printf("sum = %dn", sum(10, 20,30));
	
	return 0;
}

Output

sum = 60
sum = 60
sum = 60

3 / 3 / 0

Регистрация: 19.10.2008

Сообщений: 31

1

02.03.2009, 17:04. Показов 53526. Ответов 9


Здравствуйте!
Есть программа, которая при компиляции вываливается с ошибкой. Нужно эту ошибку найти.

Код

#include <iostream>
#include <string>

using namespace std;

void func (double cena, double procent, double sum, double procentrub, double procsum) //Функция подсчёта и вывода информации
{ for (int cntr = 1; cena != 0; cntr++)
    { cout << "nВведите цену " << cntr << "-го товара: ";
        cin >> cena;
        if (cena != 0)
        { cout << "Введите скидку " << cntr << "-го товара: ";
            cin >> procent;
            procentrub = (cena / 100) * procent; // Скидка в рублях
            procsum += procentrub;
            sum = sum + (cena - procentrub); } // Цена товара со скидкой
        else
        {    cout << "nИтоговая цена: " << sum << endl; } } }

int main (int argc, char *argv[])
{ func(); }

Вываливается с ошибкой Too few arguments to function ‘void func(double, double, double, double, double)’
Почему так? Почему нельзя засунуть много аргументов? Помогите!

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



1



176 / 168 / 27

Регистрация: 12.01.2009

Сообщений: 430

02.03.2009, 17:12

2

Можно много.Ты же не одного не передаешь.



1



Почетный модератор

7388 / 2634 / 281

Регистрация: 29.07.2006

Сообщений: 13,696

02.03.2009, 17:13

3

func у тебя параметры принимает, а ты ее как вызываешь, видел?
too few — слишком мало, грамотей, блин



1



Lord_Voodoo

Супер-модератор

8781 / 2532 / 144

Регистрация: 07.03.2007

Сообщений: 11,873

02.03.2009, 17:13

4

ну вообще все правильно вам пишут, и на аргументы вас никто не ограничивает, только у меня вопрос:
если это вызов функции:

C++
1
{ func(); }

, где параметры вообще? или вы рассчитываете, что компилятор сам додумается что-то в функцию передать?

Vourhey, Humanitis, так это вижу не я один… ну повезло… а то думал — переработался)))



1



L@m@kЪ

3 / 3 / 0

Регистрация: 19.10.2008

Сообщений: 31

02.03.2009, 17:23

 [ТС]

5

Цитата
Сообщение от Vourhey
Посмотреть сообщение

func у тебя параметры принимает, а ты ее как вызываешь, видел?
too few — слишком мало, грамотей, блин

Глубоко сожалею о своей тупости и безграмотности, а также о лени поискать в словаре

Добавлено через 1 минуту 53 секунды

Цитата
Сообщение от WooDooMan
Посмотреть сообщение

ну вообще все правильно вам пишут, и на аргументы вас никто не ограничивает, только у меня вопрос:
если это вызов функции:

C++
1
{ func(); }

, где параметры вообще? или вы рассчитываете, что компилятор сам додумается что-то в функцию передать?

Vourhey, Humanitis, так это вижу не я один… ну повезло… а то думал — переработался)))

Большое спасибо, ошибка исчезла. Но появилась другая: в строке 21

Код

avonfunc.cpp: In function ‘int main(int, char**)’:
avonfunc.cpp:21: ошибка: expected primary-expression before ‘double’
avonfunc.cpp:21: ошибка: expected primary-expression before ‘double’
avonfunc.cpp:21: ошибка: expected primary-expression before ‘double’
avonfunc.cpp:21: ошибка: expected primary-expression before ‘double’
avonfunc.cpp:21: ошибка: expected primary-expression before ‘double’



0



Супер-модератор

8781 / 2532 / 144

Регистрация: 07.03.2007

Сообщений: 11,873

02.03.2009, 17:31

6

L@m@kЪ, покажи снова код



1



L@m@kЪ

3 / 3 / 0

Регистрация: 19.10.2008

Сообщений: 31

02.03.2009, 17:41

 [ТС]

7

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
 
using namespace std;
 
void func (double cena, double procent, double sum, double procentrub, double procsum);
 
void func (double cena, double procent, double sum, double procentrub, double procsum) //Функция подсчёта и вывода информации
{ for (int cntr = 1; cena != 0; cntr++)
    { cout << "nВведите цену " << cntr << "-го товара: ";
        cin >> cena;
        if (cena != 0)
        { cout << "Введите скидку " << cntr << "-го товара: ";
            cin >> procent;
            procentrub = (cena / 100) * procent; // Скидка в рублях
            procsum += procentrub;
            sum = sum + (cena - procentrub); } // Цена товара со скидкой
        else
        {    cout << "nИтоговая цена: " << sum << endl; } } }
 
int main (int argc, char *argv[])
{ func (double cena, double procent, double sum, double procentrub, double procsum); }



0



Humanitis

176 / 168 / 27

Регистрация: 12.01.2009

Сообщений: 430

02.03.2009, 17:42

8

оригинальноСначала надо объявить переменные ,а потом их передавать в функцию. А ты их объявляешь в теле вызова функции

C++
1
2
3
4
int main (int argc, char *argv[])
{ 
double cena=2.0, procent=13.0,sum=40.0, procentrub=13.0,procsum=40.0;
func (cena, procent,  sum,  procentrub, procsum); }



1



Супер-модератор

8781 / 2532 / 144

Регистрация: 07.03.2007

Сообщений: 11,873

02.03.2009, 17:44

9

вы бы хоть одну книгу прочитали что ли, для начала…
попробуйте так:

Код

{ 
[COLOR=black]double cena, double procent, double sum, double procentrub, double procsum;[/COLOR]
... // ввод данных
func (cena, procent, sum, procentrub, procsum); 
}



1



3 / 3 / 0

Регистрация: 19.10.2008

Сообщений: 31

02.03.2009, 17:48

 [ТС]

10

Цитата
Сообщение от WooDooMan
Посмотреть сообщение

вы бы хоть одну книгу прочитали что ли, для начала…
попробуйте так:

Код

{ 
[COLOR=black]double cena, double procent, double sum, double procentrub, double procsum;[/COLOR]
... // ввод данных
func (cena, procent, sum, procentrub, procsum); 
}

Нда, действительно что-то туплю сегодня. Всем спасибо, всё работает



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

02.03.2009, 17:48

10

PHP RFC: Replace «Missing argument» warning with «Too few arguments» exception

  • Version: 0.9

  • Date: 2016-06-01

  • Author: Dmitry Stogov, dmitry@zend.com

  • Status: Accepted

Introduction

Historically, PHP allows calling functions with fewer actual parameters than required by the function definition. These “non-passed” arguments lead to warning emission and continuation of function execution with uninitialized arguments.

function foo($a) {
   var_dump($a);   // NULL + Warning: Undefined variable: a 
   var_dump($a);   // NULL + Warning: Undefined variable: a
}
foo();             // Warning: Missing argument 1 for foo()

This strange behavior:

  • allows execution of functions with unexpected input data (nobody checks isset() for all arguments)

  • doesn’t have real use cases (in any case, foo($a = null) is better)

  • may lead to warning bloating

  • disables obvious optimization opportunities

Proposal

I propose to disable calling “user” functions with insufficient actual parameters. PHP will throw an “Error” exception instead.

function foo($a) {
   var_dump($a);   // not executed
   var_dump($a);   // not executed
}
foo();             // throw Error("Too few arguments to function foo(), 0 passed in %s on line %d and exactly 1 expected")

Using this approach, all attempts to call functions with unexpected input data are going to be caught as soon as possible.

Behavior of internal functions is not going to be changed.

Backward Incompatible Changes

The BC break in intended.

Proposed PHP Version(s)

PHP 7.1

Proposed Voting Choices

The vote is a straight Yes/No vote, that requires a 2/3 majority.
The voting began on Jun 6 and will close on Jun 16.

Patches and Tests

Implementation

After the project is implemented, this section should contain

  1. the version(s) it was merged to

  2. a link to the PHP manual entry for the feature

Let’s start our topic with the basics of functions that we often use in Excel.

You must have a clear idea about what is a function in Excel. However, still, sometimes it is necessary for beginners to have a look at the fundamental features.

Basics of a Function

Basically, a block of code that lets you repeat any task is called a function. You can repeat it as much as you want. And it does not matter at all for what project you are trying to use it. For instance, you can create a function for the purpose of:

  • Formatting an Excel sheet based on some conditions
  • Using or showing user data
  • Performing arithmetic calculations

 When you provide code reusing, you make codes free from idleness as well as bring down the maintenance slide. You don’t need to modify the same code for different sections. Well, you can enhance or even update the function as needed.

What parameters do you need to consider in a function?

It might be possible that the input data needed for action is passed into the function in terms of parameters or arguments. With functions, you can reverse back some values once an action is performed.

At times, you may have noticed an error “You’ve Entered Too Few Arguments For This Function” while working with Excel. It mainly happens when you don’t fill up the required spaces for the arguments to perform a function in an Excel formula.

Potential Causes

Why does this error occur? There can be a few possible reasons that lead to this error and we have all the possible solutions to it as well.

Example 1:

If you are likely to sum all the numbers given in the range A2:A10 with a condition that the numbers must be greater than 50, then you have to make sure to use the SUMIF function. You can write this formula as:

=SUMIF(A2:A10) 

What do you think? Will it be working? The answer is NO.

You need to mention three arguments for the SUMIF formula such as the criteria, the criteria range, and the sum range. Remember that the sum range is not mandatory when the sum range and criteria range is the same. That’s why the SUMIF function needs at least two arguments.

However, here you can see just 1 argument. That’s the reason you are experiencing an error “You’ve entered too few arguments for this function.”

Example 2:

By mistake, you cannot find this error. Let’s have a look at the below-given formula and see if it work or not.

=SUMIF(A2:A10 “>50”)

Actually, it also does not work. You will again find the same “You’ve Entered Too Few Arguments in this Function” error. Why it would not work?

Well, by default an Excel gives comma (,) for argument separator. It mainly happens when we say yes to the list separator in formulas. Or else you can use another list that is unaccepted in Excel. Keep in mind that Excel will not consider the above-written formulas as completely done. These formulas are not more than one argument. However, still, we have not provided the required arguments to the function that results in an error.  

So, what would be the right argument?

Here is the right formula:

=SUMIF(A2:A10,”>50”)

Example 3:

So, what do you think, the above formula will work or not? It hardly will cause any problem and restrict to working normally. Check if your system has a list separator such as colon, semicolon, or event space, so the formula will not work accordingly. You may have to experience an unwanted error.

You can change the list separator in your system. For this, you need to

Open the active window or press the Windows + R shortcut key. Now, type “intl. cpl” and press the enter key.

While doing this step, you should not add quotes. You will see a regional window. You will see in the bottom right corner of the window for additional settings.

Now is the right time to check the list separator and write “,” common or reset to default.

 Doing this will help Excel understand that the comma is a list separator. Ultimately, you will not experience the error “You’ve entered too few arguments in this function”.

Trying the same formula might not let you experience the same error. So, that’s it and this is how you remove the headache of getting an error “You’ve entered too few arguments in this function”.

Hopefully, this article has provided everything you need to clear out your concerns.

The syntax for arguments:

Function <Function name> ([argument1 [, argument2 [, argument3 [ …… ] ] ] ] ])

<function code>

End Function

For example:

With the function, you can print whether the customer is a senior citizen or not. The age of the function 

 ‘called function

Function typeofcustomer(age)

    If age &amp;amp;gt; 60 Then

        Debug.Print “Customer is a senior citizen”

    Else

        Debug.Print “Customer is not a senior citizen”

    End If

End Function

Sub findout()

    custage = InputBox(“Enter the age of the customer”)

‘calling function

    typeofcustomer (custage)

End Sub

Solve PHP uncaught ArgumentCountError: Too few arguments to function

With the upcoming PHP 7.1, former warnings when passing too few arguments to a function got raised to an ArgumentCountError exception with the following format:

Fatal error: Uncaught ArgumentCountError: Too few arguments to function foobar()

This change only applies to own defined functions, not PHP internal functions.

That ArgumentCountError exception gets thrown when your software passes not the minimum required arguments to a user defined function.

To fix that error you need to have a look closer to the last part of the exception message, it will tell you in which file and what line too few arguments got passed and make sure you catch that part of the code with an


try {
// Code
} catch () {
// Exception
}

…block or make sure it will always have the minimum required arguments.

If you have further questions: Just left them below in the comments.

Source: PHP Manual

Check out more helpful PHP tutorials or share this page on social media to help others.


Hey there peoples. Got a hopefully quick and easy question for ya. Having an issue with this code. Im getting the error «In function `int main()’: too few arguments to function `void printdata(int, int, float, float, float)’ at this point in file». I tried looking some other place online but could not find anything I was able to grasp being a very beginner programmer. I appreciate any and all help. Thanks for your time.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
#include <iomanip>
#include <cmath>

using namespace std;

void getdata (int& length , int& width, float& costperdqfoot);
float InstalledPrice (int length, int width, float costpersquarefoot);
float totalprice (float installation);
void printdata (int length, int width, float price, float installation, float total);
const float LABOR_COST=0.35;
const float TAX_RATE=0.05;

int main()
{ 
    int length, width;
    float installation, total, costpersqfoot, price;
    
    int num;
    cout<< "Enter the amount of the count:"<<endl;
    cin>>num;
    const int MAXCOUNT = num;
    int count;
    
    for (count = 0; count < MAXCOUNT; count++)
    { 
      getdata (length, width, costpersqfoot);
      installation = InstalledPrice (length, width, costpersqfoot);
      total = totalprice (installation);
      printdata (length, width, price);
    } 
    system("pause");
    return 0;
}
void getdata (int& length, int& width, float& costpersqfoot)
{
 cout<< "Eneter the length, width, and cost per square foot"<<endl;
 cin>> length >> width >> costpersqfoot;
}    
float InstalledPrice (int length, int width, float costpersqfoot)
{
 return (length*width*costpersqfoot)+(length*width*LABOR_COST);
}
float totalprice (float installation)
{
 return (installation*TAX_RATE);
}

void printdata (int length, int width, float price, float installation, float total)
{
 cout<< "The cost for installation is: "<< installation<< endl;
 cout<< "The total cost with tax is: "<< total<< endl;

It fails when in node lts, i.e.

$ node --version
v12.13.1
$ npm --version
6.13.1

and also in v12.13.0.

/Users/loretoparisi/Library/Caches/node-gyp/12.13.1/include/node/v8config.h:311:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
In file included from ../src/batch.cc:8:
../src/common.h:32:38: error: too few arguments to function call, single argument 'context' was not specified
    ? options->Get(key)->Uint32Value()
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
/Users/loretoparisi/Library/Caches/node-gyp/12.13.1/include/node/v8.h:2611:3: note: 'Uint32Value' declared here
  V8_WARN_UNUSED_RESULT Maybe<uint32_t> Uint32Value(
  ^
/Users/loretoparisi/Library/Caches/node-gyp/12.13.1/include/node/v8config.h:351:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
#define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
                              ^
../src/batch.cc:42:67: error: no matching member function for call to 'ToObject'
  Database* database = Nan::ObjectWrap::Unwrap<Database>(info[0]->ToObject());
                                                         ~~~~~~~~~^~~~~~~~
/Users/loretoparisi/Library/Caches/node-gyp/12.13.1/include/node/v8.h:2576:44: note: candidate function not viable: requires single argument 'context', but no
      arguments were provided
  V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
                                           ^
/Users/loretoparisi/Library/Caches/node-gyp/12.13.1/include/node/v8.h:2590:31: note: candidate function not viable: requires single argument 'isolate', but no
      arguments were provided
                Local<Object> ToObject(Isolate* isolate) const);
                              ^
../src/batch.cc:72:69: error: too few arguments to function call, single argument 'context' was not specified
    maybeInstance = Nan::NewInstance(constructorHandle->GetFunction(), 1, argv);
                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
/Users/loretoparisi/Library/Caches/node-gyp/12.13.1/include/node/v8.h:5995:3: note: 'GetFunction' declared here
  V8_WARN_UNUSED_RESULT MaybeLocal<Function> GetFunction(
  ^
/Users/loretoparisi/Library/Caches/node-gyp/12.13.1/include/node/v8config.h:351:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
#define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
                              ^
../src/batch.cc:75:69: error: too few arguments to function call, single argument 'context' was not specified
    maybeInstance = Nan::NewInstance(constructorHandle->GetFunction(), 2, argv);
                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
/Users/loretoparisi/Library/Caches/node-gyp/12.13.1/include/node/v8.h:5995:3: note: 'GetFunction' declared here
  V8_WARN_UNUSED_RESULT MaybeLocal<Function> GetFunction(
  ^
/Users/loretoparisi/Library/Caches/node-gyp/12.13.1/include/node/v8config.h:351:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
#define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
                              ^
../src/batch.cc:91:3: error: no matching member function for call to 'ToObject'
  LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/leveldown.h:53:21: note: expanded from macro 'LD_STRING_OR_BUFFER_TO_SLICE'
  } else if (!from->ToObject().IsEmpty()                                       
              ~~~~~~^~~~~~~~
/Users/loretoparisi/Library/Caches/node-gyp/12.13.1/include/node/v8.h:2576:44: note: candidate function not viable: requires single argument 'context', but no
      arguments were provided
  V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
                                           ^
/Users/loretoparisi/Library/Caches/node-gyp/12.13.1/include/node/v8.h:2590:31: note: candidate function not viable: requires single argument 'isolate', but no
      arguments were provided
                Local<Object> ToObject(Isolate* isolate) const);
                              ^
../src/batch.cc:91:3: error: no matching member function for call to 'ToObject'
  LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/leveldown.h:54:42: note: expanded from macro 'LD_STRING_OR_BUFFER_TO_SLICE'
      && node::Buffer::HasInstance(from->ToObject())) {                        
                                   ~~~~~~^~~~~~~~
/Users/loretoparisi/Library/Caches/node-gyp/12.13.1/include/node/v8.h:2576:44: note: candidate function not viable: requires single argument 'context', but no
      arguments were provided
  V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
                                           ^
/Users/loretoparisi/Library/Caches/node-gyp/12.13.1/include/node/v8.h:2590:31: note: candidate function not viable: requires single argument 'isolate', but no
      arguments were provided
                Local<Object> ToObject(Isolate* isolate) const);
                              ^
../src/batch.cc:91:3: error: no matching member function for call to 'ToObject'
  LD_STRING_OR_BUFFER_TO_SLICE(key, keyBuffer, key)
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/leveldown.h:55:44: note: expanded from macro 'LD_STRING_OR_BUFFER_TO_SLICE'
    to ## Sz_ = node::Buffer::Length(from->ToObject());                        
                                     ~~~~~~^~~~~~~~
/Users/loretoparisi/Library/Caches/node-gyp/12.13.1/include/node/v8.h:2576:44: note: candidate function not viable: requires single argument 'context', but no
      arguments were provided
  V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
                                           ^
/Users/loretoparisi/Library/Caches/node-gyp/12.13.1/include/node/v8.h:2590:31: note: candidate function not viable: requires single argument 'isolate', but no
      arguments were provided
                Local<Object> ToObject(Isolate* isolate) const);
                              ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
7 warnings and 20 errors generated.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Tomorrow is thursday исправить ошибку
  • Tomcat 404 ошибка idea